我有一个CSV文件,我正试图手动加载到Snowflake中。我已经创建了这些表,并为带有日期的列指定了DATETIME列类型。
CSV中的数据为20210709。这是进口到雪花作为1970-08-22
我无法确定原因。
我有另一个日期为2022年2月18日的文件,该文件正在正确导入。
感谢提供的任何帮助
Sridhar
您应该在FILE_FORMAT子句中或在创建FILE FORMAT对象时定义DATE_FORMAT参数。
示例:
copy into mytable
file_format = (type = 'CSV', DATE_FORMAT = 'YYYYMMDD')
pattern='.*/.*/.*[.]csv[.]gz';
简短的回答是:YYYYMMDD
不是标准的可识别日期格式,因此在解析它时需要指定格式。
Michael的回答是一个很好的方法,我想提供一个替代方案:
这里是一些用于指定解析的示例语法;转换";COPY INTO导入期间的每列。文档
您需要建立一个阶段,该阶段本身可以具有file_format的参数。文档
copy into mytable (date_col, second_column)
from (
select TO_TIMESTAMP($1, 'YYYYMMDD'), $2
from @mystage/filename.csv
)
实际上我解决了如下问题
- 在FILE format中添加了日期格式(YYYMMDD(
- 将列类型更改为DATE,而不是DATETIME