2016-05-26 8 views
0

Vorschläge, wie ich ein VARCHAR von Format umwandeln kann 2016-03-24T11:31:31+0100 in timestamp/time zoneORACLE: convert VARCHAR in TIMESTAMP/TIMEZONE

„FIELD_YYY“, die offensichtlich einmal ein Zeitstempel mit Zeitzone war zu „TABLE_XXX“ zugeführt wird, und ich Ich muss dieses Feld für meine Zwecke aus dieser Tabelle verwenden.

(ich glaube, die T den Anfang des Zeit Teil markiert, wenn Zeitstempel in VARCHAR umgewandelt wird)

Ich brauche diese zurück zu Zeitstempel/Zeitzone zu konvertieren. Keine

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

Ich kann die "FIELD_YYY" ändern oder "TABLE_XXX", WARUM? Ich kann es einfach nicht, dass das Leben ist ... :-(

Antwort

0

Sie 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

, das nicht das 'T' Charakter umgehen kann. –

3

Verwenden to_timestamp_tz() Funktion verwenden können, schließen „T“ in doppelten Anführungszeichen im Format-String und Sie sind gut zu gehen .

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

Ergebnis:

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