Что дата Oracle форматирует маску для часовых поясов?

Я должен вставить формат даты из внешнего источника, который включает трехбуквенный код для часового пояса, но TZD форматирование маски, кажется, не работает...

insert into blah
    values (to_date('Thu, 18 Feb 2010 08:37:00 EST','Dy, DD Mon YYYY HH24:MI:SS TZD'));

ORA-01821: date format not recognized

Если я удаляю "TZD"...

insert into blah
    values (to_date('Thu, 18 Feb 2010 08:37:00','Dy, DD Mon YYYY HH24:MI:SS'));

1 row created.

Какова надлежащая маска для такого оператора вставки в Oracle?

desc blah
 Name                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 D                          DATE

Править: Я изменил столбец таблицы от типа ДАТЫ для ДОБАВЛЕНИЯ МЕТКИ ВРЕМЕНИ к типу и получил ту же ошибку.

5
задан dacracot 18 February 2010 в 18:45
поделиться

1 ответ

В столбцах даты нет параметра часового пояса. Вам придется создать столбец как тип данных TIMESTAMP WITH TIME ZONE или TIMESTAMP WITH LOCAL TIME ZONE , и, кроме того, функция TO_DATE не понимает маску формата ЧАСОВОГО ПОЯСА, которую вы применяете.

SQL> CREATE TABLE T
  2  (DT DATE,
  3   TS TIMESTAMP,
  4   TSTZ TIMESTAMP WITH TIME ZONE,
  5   TSLTZ TIMESTAMP WITH LOCAL TIME ZONE);

Table created.

SQL> INSERT INTO T (TSLTZ) VALUES 
  2  (to_timestamp_tz('Thu, 18 Feb 2010 08:37:00 EST','DY, DD Mon YYYY HH24:MI:SS TZD'))
  3  /

1 row created.

SQL> INSERT INTO T (TSTZ) VALUES 
  2  (to_timestamp_tz('Thu, 18 Feb 2010 08:37:00 EST','DY, DD Mon YYYY HH24:MI:SS TZD'))
  3  /

1 row created.
6
ответ дан 14 December 2019 в 13:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: