dac*_*cot 5 oracle formatting date mask
我需要从外部源插入一个日期格式,其中包括时区的三个字母代码,但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
Run Code Online (Sandbox Code Playgroud)
如果我删除"TZD"......
insert into blah
values (to_date('Thu, 18 Feb 2010 08:37:00','Dy, DD Mon YYYY HH24:MI:SS'));
1 row created.
Run Code Online (Sandbox Code Playgroud)
Oracle中这种insert语句的正确掩码是什么?
desc blah
Name Null? Type
----------------------------------------- -------- ----------------------------
D DATE
Run Code Online (Sandbox Code Playgroud)
编辑:我将表列从DATE类型更改为TIMESTAMP类型并得到相同的错误.
日期列没有时区作为选项.你必须创建列数据类型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.
Run Code Online (Sandbox Code Playgroud)