如何解决Snowflake插入DD MON YYYY格式日期到DATE列的报错问题
解决Snowflake无法识别DD MON YYYY格式日期的问题
指定格式掩码解析日期
你之前用TO_DATE没生效,是因为没传入匹配的格式字符串。直接用带格式参数的TO_DATE就能把字符串转成DATE类型:TO_DATE('28 Nov 2022', 'DD MON YYYY')如果是通过COPY INTO加载CSV文件,直接在文件格式里指定日期格式就行:
COPY INTO your_target_table(date_column) FROM @your_stage/path/to/your.csv FILE_FORMAT = (TYPE = CSV DATE_FORMAT = 'DD MON YYYY');检查会话日期语言设置
如果还是报错,大概率是当前会话的日期语言不是英文,导致Snowflake认不出Nov这类英文月份缩写。先把会话日期语言改成英文:ALTER SESSION SET DATE_LANGUAGE = 'ENGLISH';改完再执行转换或加载操作,就能正常解析了。
先验证转换结果
不确定的话,可以先单独跑个查询验证转换是否成功:SELECT TO_DATE('28 Nov 2022', 'DD MON YYYY') AS converted_date;确认返回正确的DATE值后,再插入到目标表就没问题了。
内容的提问来源于stack exchange,提问作者AJS
相关产品推荐
相关产品推荐

