2015-11-24 187 views
1

給定如下字符串: '2015-11-23T07:00:10.563-04:00' 我試圖確定其中我希望UTC日期/時間爲: '2015年11月23日11:00:10.5630000'如何從包含Oracle中時區偏移的日期/時間字符串獲取UTC日期/時間

我曾嘗試以下:

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 

即使我將時區偏移更改爲正值,我也會得到相同的結果。我一定是誤解了一些東西,所以感謝你的幫助。

回答

2

小數秒和時區小時之間沒有空格。因此,從你的模式中刪除空間,它會給出預期的結果。

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 
+0

就想通它,你貼出來 - 被拉出我的頭髮。謝謝。 – Paolog

0

修復它 - 「...... hh24:mi:ss.FF TZH:TZM」之間的空格字符造成了問題。

現在這完美的作品:

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; 
相關問題