如何在两个日期之间获得小时差异?

Gui*_*sta 5 oracle

我必须做一个"选择",它返回数据库中日期类型字段与以小时为单位的当前日期之间的差异.我怎样才能在oracle中这样做?

我试试这个:

   select 24 * (to_date(sysdate, 'YYYY-MM-DD hh24:mi') 
         - to_date('2012-02-28 15:20', 'YYYY-MM-DD hh24:mi')) diff_hours 
   from dual;
Run Code Online (Sandbox Code Playgroud)

但那没用.

awe*_*eis 17

该错误是因为SYSDATE已经是日期,无需使用TO_DATE()它将其转换为日期.

如果您不将其转换为日期:

select
    24 * (sysdate - to_date('2012-02-28 15:20', 'YYYY-MM-DD hh24:mi')) as diff_hours
from dual;
Run Code Online (Sandbox Code Playgroud)

如果日期格式错误,您可以使用以下两个步骤:

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;
Run Code Online (Sandbox Code Playgroud)