首页 > 解决方案 > FILE FORMAT 对象中的 TIMESTAMP_FORMAT 选项未解析雪花中的自定义日期字符串

问题描述

在 FILE FORMAT 定义中使用以下 TIMESTAMP_FORMAT 时:

CREATE OR REPLACE FILE FORMAT FF
     TYPE = 'CSV'
     FIELD_DELIMITER = '^'
     DATE_FORMAT = 'yyyy/MM/dd'
     TIME_FORMAT = 'hh:mm:ss'
     TIMESTAMP_FORMAT = 'MON DD YYYY HH12:MIAM'
     SKIP_HEADER = 1;

从阶段加载时,我收到以下值“1946 年 11 月 21 日 12:17pm”的错误:

Timestamp 'Nov 21 1946 12:17pm' is not recognized..."

但是,当使用 TO_TIMESTAMP 方法时,它可以很好地识别该字符串:

SELECT TO_TIMESTAMP('Nov 21 1946 12:17pm', 'MON DD YYYY HH12:MIAM'); Output: 1946-11-21 12:17:00.000

我在雪花文档中引用时间戳格式:https ://docs.snowflake.com/en/user-guide/date-time-input-output.html#timestamp-formats

任何想法为什么会这样?谢谢。

标签: sqldatedatetimesnowflake-cloud-data-platform

解决方案


To summary the issue, there was an extra space before 'Nov 21 1946 12:17pm', that was why the conversion failed:

SELECT TO_TIMESTAMP('Nov 21 1946 12:17pm', 'MON DD YYYY HH12:MIAM'); -- works

SELECT TO_TIMESTAMP(' Nov 21 1946 12:17pm', 'MON DD YYYY HH12:MIAM'); -- fails

Can't parse ' Nov 21 1946 12:17pm' as timestamp with format 'MON DD YYYY HH12:MIAM'

推荐阅读