CSV-файл с двумя разными форматами меток времени в Snowflake - PullRequest
0 голосов
/ 16 октября 2019

(отправка от имени пользователя Snowflake)


У меня есть CSV-файл с двумя разными форматами отметок времени.

Например:

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

В команде копирования я могу указать только один формат. Как мне перейти к загрузке обоих столбцов в типе данных TIMESTAMP_LTZ?

Любые рекомендации?

Ответы [ 2 ]

1 голос
/ 17 октября 2019

вы можете использовать форму SELECT COPY INTO, где вы преобразуете поля даты индивидуально, что-то вроде:

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;
1 голос
/ 16 октября 2019

В настоящее время Snowflake не позволяет загружать данные с разными форматами даты из одного файла.

Если данные в файле - просто дата, то используйте тип данных в качестве даты и в ФОРМАТЕ ФАЙЛА определите датукак AUTO.

Если в данные включены дата и время, используйте тип данных в качестве метки времени и определите метку времени в ФОРМАТЕ ФАЙЛА согласно файлу данных. DATE_FORMAT = 'AUTO' TIMESTAMP_FORMAT = 'ГГ / ММ / ДД ЧЧ24: MI: SS'

Если в файле несколько форматов даты, например, ММ / ДД / ГГ и ММ / ДД / ГГ ЧЧ: MI: SS, он загружается неправильно, вам может потребоваться разделить файл и загрузить отдельно или обновить все данные (тип даты) в единый общий формат и загрузить его в таблицу.

...