Du kan subtrahera datum i Oracle. Detta kommer att ge dig skillnaden i dagar. Multiplicera med 24 för att få timmar och så vidare.
SQL> select oldest - creation from my_table;
Om ditt datum lagras som teckendata måste du först konvertera det till en datumtyp.
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
Obs :
Detta svar gäller datum som representeras av Oracle-datatypen DATE
.Oracle har också en datatyp TIMESTAMP
, som också kan representera ett datum (med tid). Om du subtraherar TIMESTAMP
värden får du ett INTERVAL
; för att extrahera numeriska värden, använd EXTRACT
funktion.