我在Snowflake中工作,有一列时间戳格式如下:

timestamp


2021-12-13T21:52:58.656216349+0000
2021-12-13T18:22:01.194783523+0000
2021-12-13T21:03:55.224874997+0000
2021-12-13T21:02:37.075422427+0000
2021-12-13T15:54:26.268433672+0000

我所需的输出格式为:

2021-12-13

从过go 的问题中搜索,我找到了this answer个,并试图通过以下方式修改它以供我使用:

SELECT
    timestamp AS original_ts,
    to_timestamp(REPLACE(REPLACE(timestamp,'T',' '),'+',''),'YYYY-MM-DD') AS modified_ts 
FROM
    table

但会出现以下错误:

Can't parse '2022-01-26 00:06:11.1851022090000' as timestamp with format 'YYYY-MM-DD'

如何解决此错误并将时间戳列格式化为更熟悉的日期列,而完全忽略时间?

推荐答案

我认为你想在这里使用TO_DATELEFT:

SELECT TO_DATE(LEFT(timestamp, 10), 'YYYY-MM-DD') AS modified_ts
FROM yourTable;

请注意,如果您不需要真实的日期,而只需要一个日期字符串,那么单是LEFT(timestamp, 10)就足够了.

Sql相关问答推荐

SQL(PostgreSQL)从条件创建点表

BigQuery`喜欢ANY‘和`不喜欢ANY’

在Oracle中,如何删除具有特定值的行,仅当它是重复的行?

对任何(数组)使用LIKE?

BigQuery-当子查询不返回任何结果时,所有结果为零

用于过滤嵌套对象或数组中的JSON数据的WHERE条件

用于从第二个表中提取具有最小最终价格值的记录的SQL查询

我需要一个regexp_like来只验证字母D或T、数字和管道

如何在连接中使用三个不同的列,从而在PostgreSQL中只获得两个列?

从单个表达式中的分隔字符串中取平均值

存储过程太慢

我需要在 ASP.NET C# 中获取 2 个 SQL 查询结果的平均值

Postgres,使用 select 插入多个值

使用临时表判断记录是否存在 - 如果存在则执行相同的操作

PostgreSQL中如何提取以特定字符开头的字符串中的所有单词?

如何将输出转换为二维格式?

在 SQL 中使用循环遍历按时间顺序排列的数据

在 Athena / Presto 中提取 JSON 对象以获取动态密钥

在时态表和非时态表之间使用 EXCEPT 的 SQL 子查询给出表达式错误数

从 JSON 数组中移除对象