Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Como posso obter a diferença de horas entre duas datas?


O erro é porque SYSDATE já é uma data, não há necessidade de usar TO_DATE() para convertê-lo em uma data.

Se você não convertê-lo em uma data:
select
    24 * (sysdate - to_date('2012-02-28 15:20', 'YYYY-MM-DD hh24:mi')) as diff_hours
from dual;

E se a formatação das datas estiver errada, você pode usar duas etapas como:
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;