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

Convert String to Date in Snowflake

当我尝试 运行 此查询时,我得到以下输出的奇怪行为一直困扰着我。

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

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

不确定我在这里遗漏了什么。对 Snowflake 文档进行了研究,但未能获得任何具体发现。感谢任何帮助。

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

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

mm 代表月份,所以原来它实际上是在日期基础上增加 29 个月而不是 29 分钟。