关于Snowflake中to_timestamp将二月转换为一月的问题咨询
问题原因分析:Snowflake to_timestamp 转换二月为一月的问题
你遇到的问题是因为日期格式字符串里的格式符用错了:
- 在Snowflake的日期格式规则中,
MM是用来匹配月份的占位符 - 而表示分钟需要用
MI
你的原语句里,把分钟位置写成了MM,导致函数把时间部分的01当成了月份值,覆盖了原日期的二月(02),最终输出一月的日期。
原代码:
SELECT to_timestamp(to_char('2022-02-02 08:01:29 AM'),'YYYY-MM-DD HH12:MM:SS AM'); -- 2022-01-02 08:00:29.000
修正后的代码,把MM替换为MI:
SELECT to_timestamp(to_char('2022-02-02 08:01:29 AM'),'YYYY-MM-DD HH12:MI:SS AM'); -- 2022-02-02 08:01:29.000
另外补充一点:其实这里to_char是多余的,直接把字符串传给to_timestamp即可,因为原字符串格式符合默认解析规则,简化后的写法:
SELECT to_timestamp('2022-02-02 08:01:29 AM'); -- 2022-02-02 08:01:29.000
内容的提问来源于stack exchange,提问作者BeginnerDeveloper
相关产品推荐
相关产品推荐

