首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

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

2011-12-19 
关于时间统计的问题(但晚上22:00到上午8:00前不计算)我的表中有两个时间字段:t1与t2。格式类似:2007-4-210:

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

热点排行