De fout is dat SYSDATE al een datum is, het is niet nodig om TO_DATE()
te gebruiken om het naar een datum te converteren.
Als je het niet naar een datum converteert:
select
24 * (sysdate - to_date('2012-02-28 15:20', 'YYYY-MM-DD hh24:mi')) as diff_hours
from dual;
En als de opmaak van de datums verkeerd is, kunt u twee stappen gebruiken, zoals:
select
24 * (to_date(to_char(sysdate, 'YYYY-MM-DD hh24:mi'), 'YYYY-MM-DD hh24:mi') - to_date('2012-02-28 15:20', 'YYYY-MM-DD hh24:mi')) as diff_hours
from dual;