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

Come posso ottenere la differenza di ore tra due date?

L'errore è dovuto al fatto che SYSDATE è già una data, non è necessario utilizzare TO_DATE() per convertirlo in una data.

Se non lo converti in una data:

select
    24 * (sysdate - to_date('2012-02-28 15:20', 'YYYY-MM-DD hh24:mi')) as diff_hours
from dual;

E se la formattazione delle date è errata, puoi utilizzare due passaggi come:

select
    24 * (to_date(to_char(sysdate, 'YYYY-MM-DD hh24:mi'), 'YYYY-MM-DD hh24:mi') - to_date('2012-02-28 15:20', 'YYYY-MM-DD hh24:mi')) as diff_hours
from dual;