我正在尝试根据Java代码中的参数值在SQL中转换日期。但是,当执行以下查询时,我得到了错误。请您帮助我解决此查询。
SELECT TO_DATE ('2015-08-26T05:46:30.488+0100',
'YYYY-MM-DD"T"hh24:mi:ss.sTZH:TZM')
FROM DUAL
*
Error at line 2
ORA-01821: date format not recognized
日期和时间格式信息:
您有两个问题:TO_DATE
无法识别任何时区组成部分或小数秒,您必须将其转换为带有时区的时间戳,.s
无论如何,这不是表示小数秒的方式.ff
。有效的格式模型显示在文档中。
将这些放在一起,您可以执行以下操作:
SELECT TO_TIMESTAMP_TZ ('2015-08-26T05:46:30.488+0100',
'YYYY-MM-DD"T"hh24:mi:ss.ffTZHTZM')
FROM DUAL;
TO_TIMESTAMP_TZ('2015-08-26T05:46:30.488+0100','YYYY-MM-DD"T"HH24:MI:SS.FFTZHTZ
-------------------------------------------------------------------------------
26-AUG-15 05.46.30.488000000 +01:00
如果您确实希望将其作为日期,则需要决定如何处理时区信息-假设它是本地时间(本质上忽略它),或者转换为UTC或其他时区。您可能确实希望将其保留为带时区的时间戳。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句