在Snowflake中将字符串转换为日期

时间:2019-03-08 03:34:23

标签: sql snowflake-datawarehouse snowflake snowflake-schema

我一直在用怪异的行为来解决问题,当我尝试运行此查询时,得到以下输出。

SELECT
 to_timestamp_tz('11082013 12:29:25', 'MMDDYYYY hh24:mm:ss') A
,to_timestamp_tz('11082013 12:29:25', 'MMDDYYYY hh:mm:ss') B
,to_timestamp_ntz('11082013 12:29:25', 'MMDDYYYY hh24:mm:ss') C
,to_timestamp_ntz('11082013 12:29:25', 'MMDDYYYY hh:mm:ss') D
,to_date('11082013 12:29:25', 'mmddyy hh:mm:ss') E

Image of result

在所有情况下,我希望日期部分的输出为 2013-8-01

不确定我在这里缺少什么。是否对Snowflake文档进行了研究,但未能获得任何具体发现。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:2)

您需要使用 mi 而不是 mm 代表MINUTES。例如

to_timestamp_tz('11082013 12:29:25', 'MMDDYYYY hh24:mi:ss')

mm代表月份,因此原始格式实际上是在日期基础上增加29个月而不是29分钟。