2011-09-30 33 views
6

Tengo un valor VARCHAR2 en el formato '14 -SEP-11 12.33.48.537150 AM 'y necesito convertir esto a TIMESTAMP como está. Eso es como,Convertir VARCHAR2 en TIMESTAMP en Oracle

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

Quiero que el regreso de la consulta anterior sea '14 -SEP-11 12.33.48.537150 AM' en el formato de datos TIMESTAMP.

¿Cuál debería ser el 'formato_cadena' para esto.

Por favor ayuda, ya he intentado muchas cosas pero ninguno funciona .. :(

Estoy utilizando Oracle 11gR2.

Gracias.

Respuesta

9

DATE y TIMESTAMP son dos tipos de datos diferentes. Así que hay que utilizar la función de conversión correcta para cada uno, que en su caso sería TO_TIMESTAMP().

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

Si especificamos HH24, produce un error. Tiene que ser HH ya que lo necesito como AM/PM. De todos modos, gracias, esto funcionó con HH. –

+0

@BathiyaPriyadarshana - oops, fuerza de la costumbre: siempre trabajo con el reloj de veinticuatro horas. – 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 
Cuestiones relacionadas