Oracle中的分钟差异(DATE2-DATE1)* 24 * 60

时间:2014-10-24 14:15:39

标签: oracle date

我正在尝试使用此测试查询计算Oracle中两个日期之间的分钟差异:

SELECT 
  (DATE2-DATE1)*24*60 DIFFINMINUTES
FROM
(
  SELECT
    TO_DATE('2014-06-06 10:30:00', 'YYYY-MM-DD HH24:MI:SS') DATE1,
    TO_DATE('2014-06-06 11:25', 'YYYY-MM-DD HH24:MI') DATE2
  FROM DUAL
);

预期结果应该 55分钟,但我得到 54,99999999

ROUND这个值可以完成工作,但我真的想了解为什么这个计算是这种行为。

1 个答案:

答案 0 :(得分:2)

DATE2 - DATE1 Oracle计算天数差异。这就是为什么会出现一些不准确的原因。

只是一个带时间戳的例子

select inter,
       extract (day from inter) days,
       extract (hour from inter) hours,
       extract (minute from inter) minutes,
       extract (second from inter) seconds
from
(select 
  cast(date2 as timestamp) - cast(date1 as timestamp) inter
FROM
(
  SELECT
    TO_DATE('2014-06-06 10:30:00', 'YYYY-MM-DD HH24:MI:SS') DATE1,
    to_date('2014-06-06 11:25', 'YYYY-MM-DD HH24:MI') date2
  from dual
));

时间戳的替代为您提供精确的INTERVAL