sql - 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
任何想法为什么会这样?谢谢。
解决方案
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'
推荐阅读
- go - 如何在 Golang 程序中找到流氓写入 stderr 的位置?
- rust - extern crate 语句之前的#[macro_use] 是什么意思?
- python - 使用 5 的倍数作为变量更容易使用模数
- r - 在拆分后如何将两个元素放入 R 中的新两个字符串向量中
- android - 保存 10 个值的最佳实践:Shared Preferences with or without JSONObject?
- google-maps - 如何让 Golang google Maps SDK NearbySearch 从多个页面返回搜索结果
- r - LuaLaTex 和 _output.yml 配置 - 基本格式错误()
- python-3.x - Python对同一类的方法使用多处理
- c# - 拖动时如何将控件保留在其父控件中?
- javascript - 当返回嵌套在 then 块中的承诺时,使用 map for Promise.all 返回未定义数组