Oracle
 sql >> Database >  >> RDS >> Oracle

Oracle Ottieni solo tempo da To_Date() in una query?

TO_DATE('08:35:42 AM','HH:MI:SS PM')

Il motivo per cui questo non funziona è perché questa non è una data completa. Anche quando si utilizza to_date('07/12/2011','MM/DD/YYYY'), Oracle memorizza la data e l'ora, ma rende ZERO tutti i componenti dell'ora. Quindi la data effettiva memorizzata è 07/12/2011 HH:MI:SS

Se desideri archiviare il componente temporale separatamente, dovrebbe essere un campo varchar e dovrai aggiungerlo alla parte della data per ottenere la data completa. Esempio..

Select to_date(
          to_char(date_field_stored_as_date,'DD-MON-YYYY') || 
          ' ' ||
          to_char(time_field_stored_as_varchar),
         'DD-MON-YYYY HH24:MI:SS'    
       )