Ошибка вставки SNOWFLAKE -- временная метка '28.06.2016 20:35:06:703000' не распознана

Я пытаюсь загрузить данные с сервера SQL в среду Snowflake. SQL выводит дату как --06/28/2016 20:35:06:703000'

При вставке этого значения в снежинку с отметкой времени (9) в качестве типа данных я получаю эту ошибку - Отметка времени «28.06.2016 20:35:06:703000» не распознана

Если я вставляю -- '28.06.2016 20:35:06' --> Это вставляется.

я пытался

  1. ALTER SESSION SET TIMESTAMP_OUTPUT_FORMAT = 'AUTO';
  2. ALTER SESSION SET TIMESTAMP_INPUT_FORMAT = 'ММ-ДД-ГГГГ ЧЧ24:ММ:СС.FF6';
  3. ALTER SESSION SET TIMESTAMP_INPUT_FORMAT = 'AUTO';
    1. ALTER SESSION SET TIMESTAMP_INPUT_FORMAT = 'ММ/ДД/ГГГГ ЧЧ24:ММ:СС.FF6';

На данный момент ничего не работало.

может кто-нибудь помочь?

Это может показаться банальным, но задумывались ли вы об изменении исходных данных для передачи в двусмысленном формате? Таким образом, вам не понадобится этот мусор форматирования. : вместо . для миллисекунд, конечно, кажется неправильным, но M/D/Y в любом случае является своего рода мусорным форматом.

Aaron Bertrand 16.05.2022 13:48

Да, это было то же самое, что требовалось в снежинке. Получил ответ - ALTER SESSION SET TIMESTAMP_INPUT_FORMAT = 'mm/dd/yyyy hh:mi:ss:ff6';

Rohan 16.05.2022 13:59
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
2
21
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Если я использую строчные версии вашей строки формата, это работает для меня:

Ну, если 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:7030002016-06-28 20:35:06.7032016-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 на данный момент, чтобы исправить проблему, а затем выполнить массовую загрузку.

Rohan 16.05.2022 13:41

Выбор работает и для меня. Но при попытке вставить выдающую ошибку

Rohan 16.05.2022 13:46

Отлично, большое спасибо. Вставлена ​​одна строка с - ALTER SESSION SET TIMESTAMP_INPUT_FORMAT = 'мм/дд/гггг чч:ми:сс:фф6';

Rohan 16.05.2022 13:50

Рад слышать, что ты добрался туда.

Simeon Pilgrim 16.05.2022 13:53

Спасибо вам за быструю помощь.

Rohan 16.05.2022 14:00

не стесняйтесь принять ответ: stackoverflow.com/help/accepted-answer

Simeon Pilgrim 16.05.2022 14:07

Другие вопросы по теме