2010-09-16 108 views
6

我有這樣的xml文件中的日期字符串:'2010-09-09T22:33:44.OZ'。掩碼需要

我需要僅提取日期和時間。我想忽略符號T和.OZ(時區)。我應該使用哪個面罩?提前

+0

可能重複(http://stackoverflow.com/questions/3549068/conversion-a-xsd-date-xsdatetime-to-oracle-date) – APC 2010-09-16 09:20:04

回答

11
select TO_DATE('2010-09-09T22:33:44.OZ' 
       ,'YYYY-MM-DD"T"HH24:MI:SS".OZ"') 
from dual; 

9/09/2010 10:33:44 PM 
6

由於如果需要的時區信息:

select to_timestamp_tz('2010-09-09T22:33:44.GMT','YYYY-MM-DD"T"HH24:MI:SS.TZR') 
from dual; 

09-SEP-10 22.33.44.000000000 GMT 

OZ沒有一個公認的時區的縮寫,所以你需要做的是一些預先轉換的東西,是。

如果你想忽略的那部分,它的固定,你可以做什麼@Jeffrey坎普說:

select to_date('2010-09-09T22:33:44.OZ','YYYY-MM-DD"T"HH24:MI:SS."OZ"') 
from dual; 

09/09/2010 22:33:44 -- assuming your NLS_DATE_FORMAT is DD/MM/YYYY HH24:MI:SS 

如果你想忽略它,但它是不固定的,那麼你就需要到第一修剪其關閉,類似的信息(此處使用綁定變量爲簡明起見):的[轉換一個XSD日期的xs:日期時間到Oracle日期]

var input varchar2(32); 
exec :input := '2010-09-09T22:33:44.OZ'; 
select to_date(substr(:input,1,instr(:input,'.') - 1),'YYYY-MM-DD"T"HH24:MI:SS') 
from dual; 

09/09/2010 22:33:44 
+1

OZ代表Ortszeit,它是Local Ti我。 – APC 2010-09-16 09:24:25

+0

哦,好的,所以我想這意味着時區部分可以被忽略。在這種情況下,@傑弗瑞的回答更爲簡潔。 – 2010-09-16 09:36:24

+0

謝謝你的回答 – 2010-09-16 20:36:09