2016-05-26 90 views
0

我如何能格式2016-03-24T11:31:31+0100VARCHAR轉換成這顯然曾經與時區 時間戳被送到「TABLE_XXX」 timestamp/time zoneORACLE:轉換VARCHAR到TIMESTAMP/TIMEZONE

「FIELD_YYY」任何建議,我必須使用此表中的該字段用於我的用途。

(我相信3T標記的時間部分的開始時的時間戳轉換爲VARCHAR)

我需要轉換這回時間戳/時區。

select to_timestamp('2016-03-24T11:31:31+0100', 'yyy-mm-dd hh24:mi:ss') from DUAL 

不,我不能更改「FIELD_YYY」或「TABLE_XXX」,爲什麼?我做不到,這就是生活...... :-(

回答

0

您可以使用TO_TIMESTAMP_TZ

select to_timestamp_tz(your_string, 'YYYY-MM-DD HH24:MI:SS TZH:TZM') from dual; 

select to_timestamp_tz('2011-05-12 19:04:41.032645 +01:00', 
     'YYYY-MM-DD"T"HH24:MI:SS TZH:TZM') from dual; 
+0

不能處理的 'T' 字。 –

3

使用to_timestamp_tz()功能,請將「T」在雙引號中的格式字符串,你是好去。

select to_timestamp_tz('2016-03-24T11:31:31+0100' 
        , 'yyyy-mm-dd"T"hh:mi:sstzhtzm') as res 
    from dual 

結果:

RES         
-------------------------------------- 
24-MAR-16 11.31.31.000000000 AM +01:00