我需要将UTC TZ格式的时间戳字符串转换为CST TZ格式,如此处“ 2019-01-02T11:53:59.269-05:00”所示
所以基本上,我需要用TIMES TZ格式的时间字符串替换SYSTIMESTAMP的此查询的输出。 从双中选择TO_CHAR(SYSTIMESTAMP,'YYYY-MM-DD“ T” HH24:MI:SS.FF3TZH:TZM')CREATEDTIME;
我尝试了很多东西,但是出错了
选择TO_CHAR(to_timestamp('2019-01-02 11:53:59.759','YYYY-MM-DD HH24:MI:SS.FF3TZH'),'YYYY-MM-DD“ T” HH24:MI: SS.FF3TZH:TZM')从双重创建时间
错误 ORA-01821:日期格式无法识别
请帮助我编写正确的SQL查询。
答案 0 :(得分:1)
使用TSTZ
,您可以在其他时区进行选择。
以下是夏令时和标准时间的一些示例。
常规时间:
SELECT TO_CHAR(TO_TIMESTAMP_TZ('2019-01-02T16:53:59.269 UTC',
'YYYY-MM-DD"T"HH24:MI:SS.FF3 TZR') AT TIME ZONE 'AMERICA/CHICAGO',
'YYYY-MM-DD"T"HH24:MI:SS.FF3TZH:TZM')
AS CENTRAL_TIME
FROM DUAL;
结果:
CENTRAL_TIME
2019-01-02T10:53:59.269-06:00
1 row selected.
还有一个夏时制示例:
SELECT TO_CHAR(TO_TIMESTAMP_TZ('2019-04-02T17:35:52.136 UTC',
'YYYY-MM-DD"T"HH24:MI:SS.FF3 TZR') AT TIME ZONE 'AMERICA/CHICAGO',
'YYYY-MM-DD"T"HH24:MI:SS.FF3TZH:TZM')
AS CENTRAL_TIME
FROM DUAL;
结果:
CENTRAL_TIME
2019-04-02T12:35:52.136-05:00
1 row selected.