Snowflake 中带有两种不同时间戳格式的 CSV 文件

CSV file w/ two different timestamp formats in Snowflake

(代表 Snowflake 用户提交)


我有一个 csv 文件,它有两种不同的时间戳格式。

例如:

在复制命令中我只能指定一种格式。 我应该如何继续加载 TIMESTAMP_LTZ 数据类型的两列?

有什么建议吗?

目前,Snowflake 不允许从一个文件中加载不同日期格式的数据。

如果文件中的数据只是日期,则使用数据类型作为日期,并在FILE FORMAT中将日期定义为AUTO。

如果数据包含日期和时间,则使用数据类型作为时间戳,并根据数据文件在FILE FORMAT中定义时间戳。 DATE_FORMAT = 'AUTO' TIMESTAMP_FORMAT = 'YY/MM/DD HH24:MI:SS'

如果文件中有多种日期格式,例如 MM/DD/YY 和 MM/DD/YY HH:MI: SS,它无法正确加载,您可能需要拆分文件并单独加载或将所有数据(日期类型)更新为单一通用格式并将其加载到 table.

您可以使用 SELECT 形式的 COPY INTO 单独转换日期字段,例如:

COPY INTO MY_TABLE (NAME, DOB, DOD, HAIR_COLOUR) 
FROM (
   SELECT , TO_DATE(,'YYYYMMDD'), TO_DATE(,'MM-DD-YYYY'),  
   FROM @MY_STAGE/mypeeps (file_format => 'MY_CSV_FORMAT') 
)
ON_ERROR = CONTINUE;