ORACLE-最佳选择语句,用于获取两个日期时间列之间的分钟差异?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (19)

我试图完成一个来自客户端的相当困难的报告请求,我需要在几分钟内找到两个DateTime列之间的区别。我试图用各种格式的 trunc和round,并且似乎无法想出一个合理的组合。有没有一个简洁的方式来做到这一点?如果没有,有没有办法做到这一点?

提问于
用户回答回答于
SELECT date1 - date2
  FROM some_table

以天为单位返回差异。乘以24,得到一个小时和24个小时的差值。*60分钟。所以

SELECT (date1 - date2) * 24 * 60 difference_in_minutes
  FROM some_table

应该是你想要的

用户回答回答于

默认情况下,oracle日期减法返回#天中的结果。

所以只需乘以24得到小时数,再乘以60分钟即可。

例:

select
  round((second_date - first_date) * (60 * 24),2) as time_in_minutes
from
  (
  select
    to_date('01/01/2008 01:30:00 PM','mm/dd/yyyy hh:mi:ss am') as first_date
   ,to_date('01/06/2008 01:35:00 PM','mm/dd/yyyy HH:MI:SS AM') as second_date
  from
    dual
  ) test_data

扫码关注云+社区