You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Snowflake中如何将长文本datetime转换为YYYY-MM-DD HH:MM:SS格式时间戳

问题根因
  • 原有格式字符串遗漏了时区缩写(EDT)的匹配规则
  • 分钟格式符误用MM(该符号用于匹配月份),正确分钟格式符为MI
  • 未指定24小时制格式符HH24,默认HH仅支持12小时制时间解析
可行解决方案

方案1:固定时区为EDT的场景

如果所有待解析的日期时区固定为EDT,可直接在格式串中用双引号包裹固定字符串匹配EDT:

SELECT TO_TIMESTAMP_NTZ('Wed May 29 23:36:39 EDT 2019', 'DY MON DD HH24:MI:SS "EDT" YYYY');

方案2:时区不固定的通用场景

用TZ格式符匹配任意时区缩写,先解析为带时区的时间戳,再按需转换为无时区时间戳:

SELECT TO_TIMESTAMP_TZ('Wed May 29 23:36:39 EDT 2019', 'DY MON DD HH24:MI:SS TZ YYYY')::TIMESTAMP_NTZ;

输出为指定格式字符串

如果需要最终输出为YYYY-MM-DD HH:MM:SS格式的字符串,在外层嵌套TO_CHAR函数即可:

SELECT TO_CHAR(
    TO_TIMESTAMP_TZ('Wed May 29 23:36:39 EDT 2019', 'DY MON DD HH24:MI:SS TZ YYYY'),
    'YYYY-MM-DD HH24:MI:SS'
) AS formatted_datetime;
注意事项
  • 涉及24小时制的时间解析必须使用HH24格式符,避免12小时制匹配导致的解析错误
  • 不要混淆月份匹配符MM和分钟匹配符MI

内容的提问来源于stack exchange,提问作者Lakm

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 23:54:02