Snowflake 中带有两种不同时间戳格式的 CSV 文件
CSV file w/ two different timestamp formats in Snowflake
(代表 Snowflake 用户提交)
我有一个 csv 文件,它有两种不同的时间戳格式。
例如:
- time_stmp1:
2019-07-01 00:03:17.000 EDT
- time_stmp2:
2019-06-30 21:03:17 PDT
在复制命令中我只能指定一种格式。
我应该如何继续加载 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;
(代表 Snowflake 用户提交)
我有一个 csv 文件,它有两种不同的时间戳格式。
例如:
- time_stmp1:
2019-07-01 00:03:17.000 EDT
- time_stmp2:
2019-06-30 21:03:17 PDT
在复制命令中我只能指定一种格式。 我应该如何继续加载 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;