首页 > 解决方案 > 在oracle sql中减去时间

问题描述

我正在尝试根据案例条件从彼此中减去时间,但得到的错误是在预期数字字符的地方找到了非数字字符

这是代码

select 
       case 
       when to_date('01-JAN-2019 05:00 AM', 'HH:MI:SS AM') < 
            to_date('01-JAN-2019 05:00 PM', 'HH:MI:SS AM') 
       then round((to_date('01-JAN-2019 05:00 AM', 'HH:MI:SS AM') - 
                   to_date('01-JAN-2019 09:00 AM', 'HH:MI:SS AM'))*24,2)
       else 0  
       end late
  from dual

标签: sqloracle

解决方案


您必须匹配日期格式和格式掩码:

SQL> select
  2  round(
  3        (to_date('01-JAN-2019 05:00 AM', 'dd-mon-yyyy HH:MI AM') -
  4         to_date('01-JAN-2019 09:00 AM', 'dd-mon-yyyy HH:MI AM')
  5        ) * 24, 2) result
  6  from dual;

    RESULT
----------
        -4

SQL>

推荐阅读