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

Snowflake从CSV读取时TO_TIMESTAMP函数解析失败问题排查

问题原因及解决方法

问题根源

你的CSV数据里的时间戳字段被双引号包裹了(报错信息里的"8/6/2025 3:27:55 PM"是HTML转义后的双引号,实际就是"8/6/2025 3:27:55 PM")。而你用的TO_TIMESTAMP格式串'MM/DD/YYYY HH12:MI:SS AM'只匹配不带引号的时间字符串,所以解析失败——直接传不带引号的字符串能成功,也验证了这一点。

之前尝试的$1::string没用,是因为只是做了类型转换,字段里的双引号依然存在,字符串还是带引号的状态,格式串依然不匹配。

解决方法

有两种可行的处理方式:

  1. 先去除双引号再解析
    使用TRIM函数去掉字段两端的双引号,再传给TO_TIMESTAMP:

    SELECT TO_TIMESTAMP(TRIM($1, '"'), 'MM/DD/YYYY HH12:MI:SS AM') FROM @CODE_TWO_STAGE;
    
  2. 在COPY/Snowpipe配置中自动处理引号
    如果是用Snowpipe加载数据,直接在COPY INTO语句的文件格式参数里指定FIELD_OPTIONALLY_ENCLOSED_BY = '"',Snowflake会自动识别并去除字段的双引号包裹:

    COPY INTO your_target_table
    FROM @CODE_TWO_STAGE
    FILE_FORMAT = (TYPE = CSV FIELD_OPTIONALLY_ENCLOSED_BY = '"' SKIP_HEADER = 1);
    

    配置后,$1会直接返回不带引号的时间字符串,无需额外处理即可正常解析。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 11:12:04