sql >> Base de Datos >  >> RDS >> Oracle

¿Cómo puedo obtener la diferencia en horas entre dos fechas?

El error se debe a que SYSDATE ya es una fecha, no es necesario usar TO_DATE() para convertirlo en una fecha.

Si no lo convierte a una fecha:

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

Y si el formato de las fechas es incorrecto, puede usar dos pasos 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;