当前位置: 代码迷 >> Oracle开发 >> 关于时间统计的有关问题(但晚上22:00到上午8:00前不计算)
  详细解决方案

关于时间统计的有关问题(但晚上22:00到上午8:00前不计算)

热度:99   发布时间:2016-04-24 07:55:52.0
关于时间统计的问题(但晚上22:00到上午8:00前不计算)
我的表中有两个时间字段:t1与t2。   格式类似:2007-4-2   10:01:01
想得到字段   t   =   (t2-t1)*24   (小时)。
但若t1到t2在22:00到第二天8:00之间,这一段时间不能计算在内。

如   t1= '2007-4-2   1:0:0 '       t2   =   '2007-4-2   9:0:0 '
由于   '2007-4-2   1:0:0 '   到 '2007-4-2   8:0:0 '不算,t=1小时。


请问各位大侠如何实现。

------解决方案--------------------
select (decode(sign(t1 - (trunc(t1) + 22 / 24)),
1,
0,
(trunc(t1) + 22 / 24) - t1) +
decode(sign(t2 - (trunc(t2) + 8 / 24)),
1,
t2 - (trunc(t2) + 8 / 24),
0)) * 24
from tab_name
  相关解决方案