如何从Oracle中包含时区偏移量的日期/时间字符串中获取UTC日期/时间



给定这样的字符串:'2015年11月23日07:00:10563-04:00'我正在尝试确定UTC日期/时间,我希望它是:'2015-11-23 11:00:10.5630000'

我尝试过以下几种:

SELECT sys_extract_utc(
        to_timestamp_tz('2015-11-23T07:00:10.563-04:00', 
                        'yyyy-mm-dd"T"hh24:mi:ss.FF TZH:TZM')
         )  
FROM DUAL;

但这产生了一个结果:

2015/11/23 03:00:10.563000000

即使我将时区偏移量更改为正,也会得到相同的结果。我一定是误解了什么,所以非常感谢你的帮助。

小数秒和时区小时之间没有空格。所以从你的模式中去掉空格,它就会得到想要的结果。

SQL> SELECT sys_extract_utc(to_timestamp_tz('2015-11-23T07:00:10.563-04:00', 'yyyy-mm-dd"T"hh24:mi:ss.FFTZH:TZM'))  
FROM DUAL; 
SYS_EXTRACT_UTC(TO_TIMESTAMP_TZ('2015-11-23T07:00:10.563-04:00','YYYY-MM-DD
---------------------------------------------------------------------------
23-NOV-15 11.00.10.563000000 AM

修复了它-"……hh24:mi:ss.FF TZH:TSM"之间的空格字符导致了问题。

这现在非常有效:

SELECT sys_extract_utc(to_timestamp_tz('2015-11-23T07:00:10.563+04:00', 'yyyy-mm-dd"T"hh24:mi:ss.FFTZH:TZM'))  FROM DUAL;

相关内容

  • 没有找到相关文章

最新更新