Oracle - 用于获取两个DateTime列之间的差异的最佳SELECT语句?
问题描述:
我试图完成一个来自客户端的相当困难的报告请求,而且我需要在几分钟内找到两个DateTime列之间的差异。我试图使用trunc和各种各样的formats,似乎无法想出一个有意义的组合。有没有一个优雅的方式来做到这一点?如果没有,是否有任何方式来做到这一点?Oracle - 用于获取两个DateTime列之间的差异的最佳SELECT语句?
答
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
这个链接已经变味。 – Tony 2012-01-31 01:05:42
@Tony那么糟糕 - 那是一个受欢迎的页面... – 2012-01-31 01:55:34