エラーは、SYSDATEがすでに日付であるため、TO_DATE()
を使用する必要がないためです。 日付に変換します。
日付に変換しない場合:
select
24 * (sysdate - to_date('2012-02-28 15:20', 'YYYY-MM-DD hh24:mi')) as diff_hours
from dual;
また、日付の形式が間違っている場合は、次の2つの手順を使用できます。
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;