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

如何在Snowflake中将带Zulu时间的VARCHAR日期转换为Timestamp

解决Snowflake中带T/Z的VARCHAR日期转Timestamp问题

针对你遇到的2022-02-01T02:37:35.792000Z这类格式的VARCHAR转Timestamp报错问题,核心是要匹配正确的格式字符串,同时注意末尾的Z代表UTC时区,推荐两种处理方式:

方法1:使用带时区的时间戳函数(推荐,保留时区信息)

用TRY_TO_TIMESTAMP_TZ函数,格式字符串里需要把固定的T和Z用引号转义,FF6对应6位微秒:

SELECT TRY_TO_TIMESTAMP_TZ('2022-02-01T02:37:35.792000Z', 'YYYY-MM-DD"T"HH24:MI:SS.FF6"Z"') AS converted_timestamptz;

方法2:转成无时区的Timestamp

如果不需要时区信息,可以先去掉末尾的Z,再用TRY_TO_TIMESTAMP:

SELECT TRY_TO_TIMESTAMP(REPLACE('2022-02-01T02:37:35.792000Z', 'Z', ''), 'YYYY-MM-DD"T"HH24:MI:SS.FF6') AS converted_timestamp;

报错原因

之前用TRY_TO_TIMESTAMP报错,是因为格式字符串里的T和Z没有转义,Snowflake会把它们当成格式占位符解析,而非固定字符,导致匹配失败。

保留原格式输出

如果转换后需要再输出成原格式的字符串,可以结合TO_VARCHAR:

SELECT TO_VARCHAR(
    TRY_TO_TIMESTAMP_TZ('2022-02-01T02:37:35.792000Z', 'YYYY-MM-DD"T"HH24:MI:SS.FF6"Z"'),
    'YYYY-MM-DD"T"HH24:MI:SS.FF6"Z"'
) AS formatted_date;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 18:32:41