Snowflake中如何将Jan 1 2019 12:00AM格式字符串转为时间戳?
Snowflake时间戳格式转换问题解决方法
你的SQL报错是因为格式串和输入字符串不匹配,核心问题有两点:
- 输入是带AM的12小时制时间,你用了
HH24(24小时制格式符),无法识别AM/PM标识; - 输入时间只有小时和分钟,格式串里多余了
:SS部分。
正确转换语句
如果只是要转成timestamp类型:
SELECT TO_TIMESTAMP('Jan 1 2019 12:00AM', 'MON DD YYYY HH12:MIAM') FROM tablename;
如果需要固定输出YYYY-MM-DD HH24:MI:SS格式的字符串,需要先转成timestamp再格式化:
SELECT TO_CHAR( TO_TIMESTAMP('Jan 1 2019 12:00AM', 'MON DD YYYY HH12:MIAM'), 'YYYY-MM-DD HH24:MI:SS' ) AS formatted_timestamp FROM tablename;
额外注意事项
HH12用于匹配12小时制小时数,AM匹配上午/下午标识;- 单数字日期(如
1)用DD格式符即可自动识别,无需调整; - 如果会话日期语言非英文,需指定语言参数:
SELECT TO_TIMESTAMP('Jan 1 2019 12:00AM', 'MON DD YYYY HH12:MIAM', 'en') FROM tablename;
内容的提问来源于stack exchange,提问作者user15488631
相关产品推荐
相关产品推荐

