Puede sustraer las fechas en Oracle. Esto te 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 en 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 el tiempo). Si resta valores TIMESTAMP
, obtiene un INTERVAL
; para extraer valores numéricos, use la función EXTRACT
.
Casi duplicado: http://stackoverflow.com/questions/9322935/subtracting-dates-in-oracle-number-or-interval-datatype –