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

如何在Snowflake中将指定格式字符串转换为标准Timestamp?

解决Snowflake时间格式转换错误的方案

原格式2019-09-15T21:43:02.000+0000带有UTC时区偏移标识(+0000),Snowflake默认的::TIMESTAMP隐式转换无法识别这种格式,你可以通过以下两种方法解决:

方法一:指定格式字符串精准转换

使用TO_TIMESTAMP函数并匹配原格式的模板,直接生成目标时间戳:

SELECT TO_TIMESTAMP(CREATEDDATE, 'YYYY-MM-DD"T"HH24:MI:SS.FF3TZHTZM') AS CREATED_TIMESTAMP
FROM TBL1;

格式模板对应说明:

  • YYYY-MM-DD:匹配日期部分
  • "T":匹配固定分隔符T
  • HH24:MI:SS.FF3:匹配时分秒及三位毫秒
  • TZHTZM:匹配时区偏移格式(如+0000)

方法二:先转带时区时间戳再转换类型

先将字符串转为带时区的时间戳类型(TIMESTAMP_TZ),再强制转换为普通时间戳:

SELECT CAST(TO_TIMESTAMP_TZ(CREATEDDATE) AS TIMESTAMP) AS CREATED_TIMESTAMP
FROM TBL1;

由于原格式的+0000对应UTC时区,转换为普通时间戳后会直接保留UTC时间的数值,正好符合你期望的2019-09-15 21:43:02.000结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 01:45:10