Kesalahan karena SYSDATE sudah menjadi tanggal, tidak perlu menggunakan TO_DATE()
untuk mengubahnya menjadi tanggal.
Jika Anda tidak mengubahnya menjadi tanggal:
select
24 * (sysdate - to_date('2012-02-28 15:20', 'YYYY-MM-DD hh24:mi')) as diff_hours
from dual;
Dan jika format tanggalnya salah, Anda bisa menggunakan dua langkah seperti:
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;