Puede restar fechas en Oracle. Esto le dará la diferencia en días. Multiplique por 24 para obtener horas, y así sucesivamente.
SQL> select oldest - creation from my_table;
Si su fecha se almacena como datos de caracteres, primero debe convertirla a un tipo de fecha.
SQL> select 24 * (to_date('2009-07-07 22:00', 'YYYY-MM-DD hh24:mi')
- to_date('2009-07-07 19:30', 'YYYY-MM-DD hh24:mi')) diff_hours
from dual;
DIFF_HOURS
----------
2.5
Nota :
Esta respuesta se aplica a las fechas representadas por el tipo de datos de Oracle DATE
.Oracle también tiene un tipo de datos TIMESTAMP
, que también puede representar una fecha (con tiempo). Si restas TIMESTAMP
valores, obtienes un INTERVAL
; para extraer valores numéricos, utilice EXTRACT
función.