日期:2014-05-16  浏览次数:20752 次

查询某个时间段(跨日)内每小时的数据
SQL code

select type,count(*) from `table` where date >= '2012-02-04 08:00:00' and date < '2012-02-05 08:00:00' group by type


以上例子是查询2012.02.04日8点到2012.02.05日8点的数据。如果要查询这个时间段内每小时的数据这个sql查询怎么写?

其中date字段格式是datetime。

------解决方案--------------------
SQL code
select DATE_FORMAT(`date`,'%Y%m%d%H')  ,Count(*)
from `table` where date >= '2012-02-04 08:00:00'  and  date < '2012-02-05 08:00:00' 
group by DATE_FORMAT(`date`,'%Y%m%d%H')

------解决方案--------------------
select type,DATE_FORMAT(`date`,'%Y-%m-%d-%H'),count(*) from `table` where date >= '2012-02-04 08:00:00' and date < '2012-02-05 08:00:00' group by type,DATE_FORMAT(`date`,'%Y-%m-%d-%H')