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

Snowflake中提取JSON时间戳并去除T和Z的方法咨询

解决Snowflake中ISO时间戳去除T和Z的问题

错误原因分析

你之前的CAST(summary:disconnectTimestamp::String AS disconnectTimestamp)报错,是因为CAST的第二个参数必须是Snowflake支持的标准数据类型(如TIMESTAMP、DATE等),而你用了自定义别名disconnectTimestamp作为类型,导致系统识别为不支持的数据类型。

可行解决方案

方案1:先转时间类型再格式化(推荐)

先将字符串转成Snowflake的TIMESTAMP类型,再用TO_CHAR指定输出格式,自动去除T和Z:

TO_CHAR(TO_TIMESTAMP(summary:disconnectTimestamp::String), 'YYYY-MM-DD HH24:MI:SS.FF3') AS "TIME"
  • TO_TIMESTAMP可直接解析2024-03-21T20:19:57.398Z这种ISO标准时间字符串
  • YYYY-MM-DD HH24:MI:SS.FF3对应输出2024-03-21 20:19:57.398,如果不需要毫秒可以去掉.FF3

方案2:直接字符串替换

如果只需要字符串格式的结果,无需转成时间类型,可用两次REPLACE函数直接替换T和Z:

REPLACE(REPLACE(summary:disconnectTimestamp::String, 'T', ' '), 'Z', '') AS "TIME"
  • 第一次将T替换为空格,第二次去掉末尾的Z,直接得到2024-03-21 20:19:57.398

方案3:正则表达式替换

用REGEXP_REPLACE一次性处理替换逻辑:

REGEXP_REPLACE(REGEXP_REPLACE(summary:disconnectTimestamp::String, 'T', ' '), 'Z$', '') AS "TIME"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 15:27:04