致电
SELECT TO_DATE('Mon Sep 22 18:02:41 CDT 2014', 'DY MON DD HH24:MI:SS TZD YYYY') FROM Dual;
我得到了
ORA-01821: date format not recognized
01821. 00000 - "date format not recognized"
我把these Oracle instructions的格式字符串放在一起。我试过“TZR”和“TZD”都没有用。
DY Abbreviated name of day.
MON Abbreviated name of month.
DD Day of month (1-31).
HH24 Hour of day (0-23).
MI Minute (0-59).
SS Second (0-59).
TZD Daylight savings information. For example, 'PST'
TZR Time zone region.
YYYY 4-digit year
为什么这不起作用?
答案 0 :(得分:2)
TO_DATE不支持时区。
我认为您需要使用to_timestamp_TZ()来完成您所追求的目标......
SELECT To_TimeStamp_TZ('Mon Sep 22 18:02:41 2014 CDT', 'DY MON DD HH24:MI:SS YYYY TZD')
FROM Dual;
给你类似的东西(使用我的NLS参数)
22-SEP-14 06.02.41.000000000 PM AMERICA/CHICAGO
另请注意,数据类型必须是TIMESTAMP WITH TIME ZONE数据类型;或oracle只删除没有错误的时区信息。
https://docs.oracle.com/cd/E11882_01/server.112/e10729/ch4datetime.htm#NLSPG238