MYSQL按时间段分组查询当天小时内数据

遇到一个需求,要查询一些表的,每两小时一次的数据。

第一反应就是用子查询,但是细想一下,应该有更好的方法去做,一番尝试最终采用的结果如下。

SELECT COUNT(*) AS num,FROM_UNIXTIME(createTime,'%H') as dateFor FROM user 
WHERE createTime BETWEEN 1544745600 AND 1544831999
GROUP BY dateFor

我这边得时间用的是时间戳,如果是有格式的请用DATE_FORMAT()函数。

思路就是将今天要查询的时间戳格式化成时。然后当依据查询。这样的结果是,24小时的数据都有了。最多24条。这时候你想要两个小时内的条数的话,相加就OK了。

如果有更好的处理方式。欢迎交流。

你可能感兴趣的:(mysql)