Я должен вставить формат даты из внешнего источника, который включает трехбуквенный код для часового пояса, но 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
Править: Я изменил столбец таблицы от типа ДАТЫ для ДОБАВЛЕНИЯ МЕТКИ ВРЕМЕНИ к типу и получил ту же ошибку.
В столбцах даты нет параметра часового пояса. Вам придется создать столбец как тип данных 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.