Oracle日期格式"2009-02-13T11:46:40 + 00:00"

Gar*_*eth 3 oracle formatting date

我之前得到了一些很棒的帮助,我希望你能再次让我离开一个洞.

我有一个来自网络服务的日期:2009-02-13T11:46:40 + 00:00

对我来说,它看起来像标准的UTC格式.

我需要将它插入到Oracle数据库中,所以我在插入时使用to_date().问题是,我无法得到匹配的格式化字符串,并继续得到"ORA-01861:文字与格式字符串不匹配"错误.

我知道它是一个相当微不足道的问题,但由于某种原因我不能让它接受正确的格式字符串.任何帮助赞赏.

谢谢 :)

加雷思

Dav*_*sta 7

您可以直接将其转换为TIMESTAMP_WITH_TIME_ZONE数据类型.

select
  to_timestamp_tz('2009-02-13T11:46:40+00:00','YYYY-MM-DD"T"HH24:MI:SSTZH:TZM')
from
 dual

TO_TIMESTAMP_TZ('2009-02-13T11:46:40+00:00','YYYY-MM-DD"T"HH24:MI:SSTZH:TZM
---------------------------------------------------------------------------
13-FEB-09 11.46.40.000000000 AM +00:00
Run Code Online (Sandbox Code Playgroud)

(我假设输入字符串使用24小时制,因为没有AM/PM指示符.)

如果您想将其转换为简单的日期,则可以,但它会丢失时区信息.


Qua*_*noi 5

SELECT  CAST(TO_TIMESTAMP_TZ(REPLACE('2009-02-13T11:46:40+00:00', 'T', ''), 'YYYY-MM-DD HH:MI:SS TZH:TZM') AS DATE)
FROM    dual
Run Code Online (Sandbox Code Playgroud)