【问题标题】:CSV file w/ two different timestamp formats in SnowflakeSnowflake 中具有两种不同时间戳格式的 CSV 文件
【发布时间】:2019-10-16 14:56:25
【问题描述】:

(代表雪花用户提交)


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

例如:

  • time_stmp1:2019-07-01 00:03:17.000 EDT
  • time_stmp2:2019-06-30 21:03:17 PDT

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

有什么建议吗?

【问题讨论】:

    标签: snowflake-cloud-data-platform


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      如果文件中的数据只是日期,则使用数据类型作为日期,在文件格式中,将日期定义为自动。

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-04-28
        • 1970-01-01
        • 1970-01-01
        • 2017-07-11
        • 2017-04-25
        • 2013-04-19
        • 1970-01-01
        相关资源
        最近更新 更多