TIMESTAMP_FORMAT FOIBLES - PullRequest
       10

TIMESTAMP_FORMAT FOIBLES

0 голосов
/ 01 ноября 2019

Я боролся с загрузкой файла данных в снежинку в формате даты / времени, например: 2019-02-25 12:03:31 PM

К сожалению, TIMESTAMP_FORMAT = 'AUTO' не удается. Я испробовал множество различных FILE FORMAT вариантов, но в документации Snowflake не очень много рекомендаций.

ALTER FILE FORMAT "SLBG_POS"."PUBLIC".SILVERWARE_POS_FILE_TAB_41 
    SET COMPRESSION = 'AUTO' FIELD_DELIMITER = ',' RECORD_DELIMITER = '\n'
    SKIP_HEADER = 8 FIELD_OPTIONALLY_ENCLOSED_BY = '\042' TRIM_SPACE = TRUE
    ERROR_ON_COLUMN_COUNT_MISMATCH = TRUE ESCAPE = 'NONE' 
    ESCAPE_UNENCLOSED_FIELD = '\134' DATE_FORMAT = 'AUTO' 
    TIMESTAMP_FORMAT = 'YYYY-MM-dd h:mm:SS a' NULL_IF = ('');

Если есть хорошая ссылка на то, какой будет правильная строка для TIMESTAMP_FORMAT, она будет очень признательна.

Спасибо, Роб.

Ответы [ 2 ]

1 голос
/ 02 ноября 2019

Вы были почти там. Формат в следующем запросе должен работать:

order.csv:
Order date,Item code,Quantity
2019-02-25 12:03:31 PM,XYZ123,45
2019-02-04 11:27:25 AM,PPP987,404

CREATE OR REPLACE TABLE T (ORDER_DATE TIMESTAMP, ITEM_CODE TEXT, QUANTITY NUMBER);
COPY INTO T FROM @my_stage/order.csv
FILE_FORMAT = (TYPE = CSV SKIP_HEADER = 1 TIMESTAMP_FORMAT = 'YYYY-MM-DD HH12:MI:SS AM');

Для справки, форматы документированы здесь:

0 голосов
/ 02 ноября 2019

Установите ваш TIMESTAMP_INPUT_FORMAT параметр сеанса перед вашими другими DDL / DML

ALTER SESSION SET TIMESTAMP_INPUT_FORMAT = 'mm/dd/yyyy hh:mi:ss pm';

...