2011-12-03 9 views

risposta

26

È possibile convertire una stringa in una data utilizzando la funzione TO_DATE, quindi formattare la data come un'altra stringa utilizzando TO_CHAR, vale a dire:

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 

Ad esempio, se il nome della tabella è MYTABLE e la colonna VARCHAR2 è MYDATESTRING:

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

Grazie. Ho un po 'come sono riuscito a ottenere questo risultato usando la funzione substring. Ma la tua risposta è più semplice di quella che ho usato. Grazie mille. La mia istruzione sql è selezionare to_date (substr (CRM_ACC_DATE_TIME, 1, instr (CRM_ACC_DATE_TIME, ',') - 1), 'gg-mm-aaaa') da crm_claim_int_details_view; – leelavinodh

+0

Sì, di solito c'è più di un modo per rivestire un gatto :) –

7

È necessario utilizzare la funzione TO_DATE.

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

sto ottenendo questo errore msg ORA-01.858: un carattere non numerico è stato trovato dove era previsto un numerica ORA-02063: precedente linea dal GENCONAIMSUA T 01858. 00000 - "è stato trovato un carattere non numerico in cui era previsto un valore numerico" * Causa: i dati di input da convertire utilizzando un modello di formato data erano errati. I dati di input non contenevano un numero in cui un numero era richiesto dal modello di formato. * Azione: correggere i dati di input o il modello di formato della data per assicurarsi che gli elementi corrispondano in numero e tipo. Quindi riprovare l'operazione. – leelavinodh