Я пытаюсь загрузить данные с сервера SQL в среду Snowflake. SQL выводит дату как --06/28/2016 20:35:06:703000'
При вставке этого значения в снежинку с отметкой времени (9) в качестве типа данных я получаю эту ошибку - Отметка времени «28.06.2016 20:35:06:703000» не распознана
Если я вставляю -- '28.06.2016 20:35:06' --> Это вставляется.
я пытался
На данный момент ничего не работало.
может кто-нибудь помочь?
Да, это было то же самое, что требовалось в снежинке. Получил ответ - ALTER SESSION SET TIMESTAMP_INPUT_FORMAT = 'mm/dd/yyyy hh:mi:ss:ff6';
Если я использую строчные версии вашей строки формата, это работает для меня:
Ну, если mi
используется для минут, формат параметров И маркер для миллисекунд :
не .
в ваших данных примера
select '06/28/2016 20:35:06:703000' as inp
,try_to_timestamp(inp, 'mm/dd/yyyy hh:mi:ss:ff6') as ts1
,try_to_timestamp(inp, 'mm/dd/yyyy hh24:mi:ss:ff6') as ts1b
,try_to_timestamp(inp, 'MM/DD/YYYY HH24:MM:SS.FF6') as ts2
,try_to_timestamp(inp, 'MM/DD/YYYY HH:MI:SS.FF6') as ts3
,try_to_timestamp(inp, 'MM/DD/YYYY HH:MI:SS.FF6') as ts4
;
ИНФ | ТС1 | ТС1Б | ТС2 | ТС3 | ТС4 |
---|---|---|---|---|---|
28.06.2016 20:35:06:703000 | 2016-06-28 20:35:06.703 | 2016-06-28 20:35:06.703 | нулевой | нулевой | нулевой |
ALTER SESSION SET TIMESTAMP_INPUT_FORMAT = 'mm/dd/yyyy hh:mi:ss:ff6';
select '06/28/2016 20:35:06:703000'::timestamp;
кажется, работает для меня, хотя на самом деле это не вставка
'28.06.2016 20:35:06:703000'::TIMESTAMP |
---|
2016-06-28 20:35:06.703 |
ALTER SESSION SET TIMESTAMP_INPUT_FORMAT = 'mm/dd/yyyy hh:mi:ss:ff6';
create table ts_test(ts timestamp_ntz);
insert into ts_test select '06/28/2016 20:35:06:703000';
select * from ts_test;
ТС |
---|
2016-06-28 20:35:06.703 |
это также работает для меня:
insert into ts_test values ('06/28/2016 20:35:06:703000');
Я пытаюсь вставить данные. Если мне это нравится, ALTER SESSION SET TIMESTAMP_INPUT_FORMAT = 'mm/dd/yyyy hh24:mi:ss:ff6)'; а затем вставьте, он по-прежнему показывает «Временная метка« 28.06.2016 20: 35: 06: 703000 »не распознана»». Опубликованный вами запрос работает с select, но я пытаюсь вставить 1 на данный момент, чтобы исправить проблему, а затем выполнить массовую загрузку.
Выбор работает и для меня. Но при попытке вставить выдающую ошибку
Отлично, большое спасибо. Вставлена одна строка с - ALTER SESSION SET TIMESTAMP_INPUT_FORMAT = 'мм/дд/гггг чч:ми:сс:фф6';
Рад слышать, что ты добрался туда.
Спасибо вам за быструю помощь.
не стесняйтесь принять ответ: stackoverflow.com/help/accepted-answer
Это может показаться банальным, но задумывались ли вы об изменении исходных данных для передачи в двусмысленном формате? Таким образом, вам не понадобится этот мусор форматирования.
:
вместо.
для миллисекунд, конечно, кажется неправильным, но M/D/Y в любом случае является своего рода мусорным форматом.