在Oracle中减去日期

时间:2017-11-10 12:44:53

标签: sql oracle oracle12c

我在oracle中运行此查询:

  select TO_CHAR(parsed_on, 'DD-MON-YYYY HH24:MI:SS'),  TO_CHAR(creation_date, 'DD-MON-YYYY HH24:MI:SS'),
     (parsed_on -  creation_date) * 1000
        from hotels          
       where TO_CHAR(CREATION_DATE, 'dd/mm/yyyy') = TO_CHAR(SYSDATE, 'dd/mm/yyyy') and incoming_psd_id = 608423671;

这就是结果,我除了12秒而不是8.4

enter image description here

10-NOV-2017 07:49:54    10-NOV-2017 07:37:46    8,42592592592

3 个答案:

答案 0 :(得分:0)

Oracle中秒的正确表达式为:

(parsed_on -  creation_date) * 24*60*60

差异是十进制天数。

如果您需要分钟,请使用:

(parsed_on -  creation_date) * 24*60

答案 1 :(得分:0)

select ( to_date('10-NOV-2017 07:49:54', 'DD-MON-YYYY HH:MI:SS') - to_date('10-NOV-2017 07:37:46', 'DD-MON-YYYY HH:MI:SS') )* 86400
from dual

正确地给出728秒。

答案 2 :(得分:0)

如果你想比较日期,你有这个选择:

where trunc(CREATION_DATE) = trunc(SYSDATE)

TRUNC默认情况下会删除日期的时间部分,而trunc(SYSDATE, YYYY)会将其减少到几年。