Puoi sottrarre le date in Oracle. Questo ti darà la differenza in giorni. Moltiplica per 24 per ottenere ore e così via.
SQL> select oldest - creation from my_table;
Se la tua data è memorizzata come dati carattere, devi prima convertirla in un tipo di data.
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 :
Questa risposta si applica alle date rappresentate dal tipo di dati Oracle DATE
.Oracle ha anche un tipo di dati TIMESTAMP
, che può anche rappresentare una data (con ora). Se sottrai TIMESTAMP
valori, ottieni un INTERVAL
; per estrarre valori numerici, utilizzare il EXTRACT
funzione.