如果你的时间段是均匀的,比如一天24小时内,每4个小时为一个周期,那么可以这么写
select coutn(ID) from T group by trunc (to_char(time,'hh24') / 4)
--to_char(time,'hh24')是取出小时部分,trunc是求商,把小时部分除以4,则每4个小时内的都会在一起
如果时间段不均匀,那么只能每个时间段单独写了
示例
select count(ID) from T where to_char(time,'hh24')<结束时间 and to_char(time,'hh24') >=开始时间
select count(ID),[date] from T where [date] < '2013-1-1' and [date] > '2012-1-1' group by [date]
select count(ID), convert(VARCHAR(10),[date],120) from T group by convert(VARCHAR(10),[date],120)