遇到一个需求,要查询一些表的,每两小时一次的数据。
第一反应就是用子查询,但是细想一下,应该有更好的方法去做,一番尝试最终采用的结果如下。
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了。
如果有更好的处理方式。欢迎交流。