Oracle - 用于获取两个DateTime列之间的分钟差异的最佳SELECT语句?

StackOverflow https://stackoverflow.com/questions/206222

  •  03-07-2019
  •  | 
  •  

我正在尝试从客户端完成一个相当困难的报告请求,我需要找到它以在几分钟内获得两个DateTime列之间的差异。我试图使用各种格式进行截断和舍入,似乎无法实现一个有意义的组合。有一种优雅的方式来做到这一点?如果没有,是否任何方式执行此操作?

有帮助吗?

解决方案

SELECT date1 - date2
  FROM some_table

返回天数差异。乘以24得到小时差异和24 * 60得到分钟。所以

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

应该是你要找的东西

其他提示

默认情况下,oracle日期减法以#天为单位返回结果。

因此,只需乘以24即可获得小时数,再按60分钟即可获得。#/ p>

示例:

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
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top