2011-09-30 16 views
6

Ho un valore VARCHAR2 nel formato '14 -SEP-11 12.33.48.537150 AM 'e ho bisogno di convertirlo in un TIMESTAMP così com'è. Che è come,Converti VARCHAR2 in TIMESTAMP in Oracle

SELECT TO_DATE('14-SEP-11 12.33.48.537150 AM', '<format_string>') FROM DUAL; 

voglio il ritorno dalla query sopra per essere '14 -sep-11 12.33.48.537150 AM' in formato dati TIMESTAMP.

Quale dovrebbe essere il "formato_stringa" per questo.

Si prega di aiuto da quando ho provato molte cose, ma nessuno funziona .. :(

Sto usando Oracle 11gR2.

Grazie.

risposta

9

DATE e TIMESTAMP sono due tipi di dati diversi. Quindi è necessario utilizzare la funzione di conversione corretto per ciascuno, che nel tuo caso sarebbe TO_TIMESTAMP().

SELECT TO_TIMESTAMP('14-SEP-11 12.33.48.537150 AM', 'DD-MON-RR HH:MI:SS.FF AM') 
FROM DUAL; 
+1

Se si specifica HH24, si dà un errore. Deve essere HH poiché ne ho bisogno come AM/PM. Comunque grazie a questo ha lavorato con HH. –

+0

@BathiyaPriyadarshana - oops, forza dell'abitudine: lavoro sempre con l'orologio delle ventiquattro ore. – APC

1
select from_tz(to_timestamp('14-SEP-11 12.33.48.537150 PM', 'DD-Mon-RR HH.MI.SS.FF AM'), 'EUROPE/LONDON') from dual 
Problemi correlati