sql 按时间分类查询数据,比如:按一天时间段分类查询访问次数?查询语句怎么写?举个例子

select count(ID),[date] from T group by [date] [date]怎么设置成时间段?
2024-12-02 05:50:10
推荐回答(3个)
回答1:

如果你的时间段是均匀的,比如一天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') >=开始时间

回答2:

select count(ID),[date] from T where [date] < '2013-1-1' and [date] > '2012-1-1' group by [date]

回答3:

select count(ID), convert(VARCHAR(10),[date],120) from T group by convert(VARCHAR(10),[date],120)