关于时间统计的问题(但晚上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