U kunt datums aftrekken in Oracle. Dit geeft je het verschil in dagen. Vermenigvuldig met 24 om uren te krijgen, enzovoort.
SQL> select oldest - creation from my_table;
Als uw datum is opgeslagen als tekengegevens, moet u deze eerst converteren naar een datumtype.
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
Opmerking :
Dit antwoord is van toepassing op datums die worden weergegeven door het Oracle-gegevenstype DATE
.Oracle heeft ook een gegevenstype TIMESTAMP
, die ook een datum (met tijd) kan vertegenwoordigen. Als u TIMESTAMP
aftrekt waarden, krijg je een INTERVAL
; gebruik de EXTRACT
. om numerieke waarden te extraheren functie.