我正在尝试从客户端完成一个相当困难的报告请求,我需要找到它以在几分钟内获得两个DateTime列之间的差异。我试图使用各种formats的截断和圆形,似乎无法想出一个有意义的组合。有一种优雅的方式来做到这一点?如果没有,是否有任何方式来执行此操作?
答案 0 :(得分:45)
SELECT date1 - date2
FROM some_table
返回天数差异。乘以24得到小时差异和24 * 60得到分钟。所以
SELECT (date1 - date2) * 24 * 60 difference_in_minutes
FROM some_table
应该是你要找的东西
答案 1 :(得分:10)
默认情况下,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
答案 2 :(得分:3)
http://asktom.oracle.com/tkyte/Misc/DateDiff.html - 截至2012-01-30已死亡
看起来这是资源:
http://asktom.oracle.com/pls/asktom/ASKTOM.download_file?p_file=6551242712657900129
答案 3 :(得分:0)
在 timestampdiff
子句中使用 where
。
示例:
Select * from tavle1,table2 where timestampdiff(mi,col1,col2).