我正在尝试满足来自客户的一个相当困难的报告请求,我需要在几分钟内找到两个 DateTime 列之间的差异。我尝试使用各种格式的 trunc 和 round ,但似乎无法想出一个有意义的组合。有没有一种优雅的方式来做到这一点?如果没有,有没有办法做到这一点?
PITADeveloper
问问题
165687 次
4 回答
50
SELECT date1 - date2
FROM some_table
返回天数的差异。乘以 24 得到小时的差异,乘以 24*60 得到分钟。所以
SELECT (date1 - date2) * 24 * 60 difference_in_minutes
FROM some_table
应该是你要找的
于 2008-10-15T20:14:30.307 回答
11
默认情况下,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
于 2008-10-15T20:16:24.750 回答
3
http://asktom.oracle.com/tkyte/Misc/DateDiff.html - 截至 2012-01-30 链接失效
看起来这是资源:
http://asktom.oracle.com/pls/asktom/ASKTOM.download_file?p_file=6551242712657900129
于 2008-10-15T20:13:46.567 回答
0
使用timestampdiff
atwhere
子句。
例子:
Select * from tavle1,table2 where timestampdiff(mi,col1,col2).
于 2021-04-12T12:32:57.347 回答