SQLServer时间分段查询(二)

2015-07-21 16:27:45 · 作者: · 浏览: 23
0402,1,convert(datetime,'2015-04-01 05:00') union all select 4100000402,1,convert(datetime,'2015-04-01 06:00') union all select 4100000402,1,convert(datetime,'2015-04-01 07:00') union all select 4100000402,1,convert(datetime,'2015-04-01 08:00') union all select 4100000402,1,convert(datetime,'2015-04-01 09:00') union all select 4100000402,1,convert(datetime,'2015-04-01 11:00') union all select 4100000402,1,convert(datetime,'2015-04-01 12:00') union all select 4100000402,1,convert(datetime,'2015-04-01 13:00') union all select 4100000402,1,convert(datetime,'2015-04-01 14:00') union all select 4100000402,1,convert(datetime,'2015-04-01 15:00') union all select 4100000402,1,convert(datetime,'2015-04-01 16:00') union all select 4100000402,1,convert(datetime,'2015-04-01 17:00') union all select 4100000402,1,convert(datetime,'2015-04-01 18:00') union all select 4100000402,1,convert(datetime,'2015-04-01 19:00') union all select 4100000402,1,convert(datetime,'2015-04-01 20:00') union all select 4100000402,1,convert(datetime,'2015-04-01 22:00') union all select 4100000402,1,convert(datetime,'2015-04-01 23:00') select pscode,outputcode, convert(varchar(16),MIN(monitortime),120)+'~'+convert(varchar(16),MAX(monitortime),120) fw, COUNT(1) num from (select x.pscode,x.outputcode,x.monitortime,dateadd(HOUR,-x.orderby,x.monitortime) diff from (select pscode,outputcode,monitortime, ROW_NUMBER() over(partition by pscode,outputcode order by pscode,outputcode,monitortime) orderby from Test) x)y group by y.pscode,y.outputcode,y.diff