2011-12-03 32 views

Respuesta

26

Puede convertir una cadena en una fecha con la función TO_DATE, después vuelva a formatear la fecha como otra cadena usando TO_CHAR, es decir:

SELECT TO_CHAR(
     TO_DATE('15/August/2009,4:30 PM' 
       ,'DD/Month/YYYY,HH:MI AM') 
     ,'DD-MM-YYYY') 
FROM DUAL; 

15-08-2009 

Por ejemplo, si el nombre de la tabla es MITABLA y la columna VARCHAR2 es MYDATESTRING:

SELECT TO_CHAR(
     TO_DATE(MYDATESTRING 
       ,'DD/Month/YYYY,HH:MI AM') 
     ,'DD-MM-YYYY') 
FROM MYTABLE; 
+0

Gracias. De alguna manera logré obtener este resultado usando la función de subcadena. Pero tu respuesta es más simple que lo que solía. Muchas gracias. Mi instrucción sql es select to_date (substr (CRM_ACC_DATE_TIME, 1, instr (CRM_ACC_DATE_TIME, ',') - 1), 'dd-mm-aaaa') de crm_claim_int_details_view; – leelavinodh

+0

Sí, generalmente hay más de una manera de despellejar a un gato :) –

7

Necesita usar la función TO_DATE.

SELECT TO_DATE('01/01/2004', 'MM/DD/YYYY') FROM DUAL; 
+1

que estoy recibiendo este msg del error ORA-01858: se ha encontrado un carácter no numérico en el que se espera un valor numérico ORA-02063: línea anterior de GENCONAIMSUA T 01858. 00000 - "se encontró un carácter no numérico donde se esperaba un número" * Causa: los datos de entrada que se convertirán utilizando un modelo de formato de fecha fueron incorrectos. Los datos de entrada no contenían un número donde un número era requerido por el modelo de formato. * Acción: corrija los datos de entrada o el modelo de formato de fecha para asegurarse de que los elementos coincidan en número y tipo. Luego vuelva a intentar la operación. – leelavinodh

Cuestiones relacionadas