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

Snowflake中如何将varchar类型数据转换为有效的timestamp时间值

错误原因

你当前使用的时间格式模板'YYYYMMDD HH24:MI:SS.FF'包含空格、冒号、英文点等分隔符,但待解析的字符串'20211101132344205550'是纯数字拼接的无分隔符格式,二者结构不匹配,因此解析失败。
你之前用同类方法可以正常运行,大概率是之前staging层的timestamp字段值是带对应分隔符的格式,本次数据源格式发生了变化。

解决方案

推荐使用匹配纯数字格式的模板直接解析,写法更简洁:

  • 你的待解析字符串结构为「8位日期+6位时分秒+6位微秒」,直接使用对应格式模板即可,无需额外截断字符串:
TO_TIMESTAMP(timestamp, 'YYYYMMDDHH24MISSFF6')

如果要兼容可能存在的更长小数秒的场景,也可以调整FF后的数字,比如FF9匹配9位纳秒:

TO_TIMESTAMP(timestamp, 'YYYYMMDDHH24MISSFF9')

如果确实需要沿用原有带分隔符的格式模板,可以先给纯数字字符串插入对应分隔符再解析(写法相对繁琐,不推荐):

TO_TIMESTAMP(
  CONCAT(
    LEFT(timestamp,8), ' ', 
    SUBSTR(timestamp,9,2), ':', SUBSTR(timestamp,11,2), ':', SUBSTR(timestamp,13,2), '.', 
    SUBSTR(timestamp,15)
  ), 
  'YYYYMMDD HH24:MI:SS.FF'
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 17:06:05