在我的数据库表(EMP_WORKS
)的WORK_TIME
列中,我有如下记录。
WORK_TIME
19:03:00
20:00:00
21:02:00
21:54:00
23:04:00
00:02:00
我想使用这些数据创建一个数据库 View
。为此,我需要获取这些时间之间的Gap
,如下所示。
WORK_TIME GAP
19:03:00 -
20:00:00 00:57:00 (Gap between 19:03:00 and 20:00:00)
21:02:00 01:02:00 (Gap between 20:00:00 and 21:02:00)
21:54:00 00:52:00 (Gap between 21:02:00 and 21:54:00)
23:04:00 01:10:00 (Gap between 21:54:00 and 23:04:00)
00:02:00 00:58:00 (Gap between 23:04:00 and 00:02:00)
我怎样才能做到这一点?
最佳答案
此查询将为您提供小时数差异:
SELECT
work_time,
( work_time - LAG(work_time) OVER (ORDER BY work_time) ) * 24 AS gap
FROM emp_works
SQL Fiddle 上的示例返回此:
WORK_TIME GAP
November, 07 2012 19:03:00+0000 (null)
November, 07 2012 20:00:00+0000 0.95
November, 07 2012 21:02:00+0000 1.033333333333
November, 07 2012 21:54:00+0000 0.866666666667
November, 07 2012 23:04:00+0000 1.166666666667
November, 08 2012 00:02:00+0000 0.966666666667
关于oracle - 获取时间范围之间的间隙,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13265468/