Mysql如何以每两小时为维度进行统计
在做查询统计功能的时候,会碰到统计某一天的数据,按照每两小时为维度进行统计
效果
思路
之前做按照天为维度,都是将日期格式化的时候,取到天,这样就忽略了时分秒,再对格式化的日期进行group by即可。同理,对这个需求,我们对小时进行处理,将小时单独取出来,先除以2,对结果向上取整,再乘以2即可。例如 ceil(3 / 2) * 2 = 4。
代码
这里说明下,代码中kssj代表开始时间字段,是13位时间戳,若大家数据库存储的是时间,则自行转换。
SELECT
count( 1 ),
t.kssj
FROM
(
SELECT
CONCAT(
FROM_UNIXTIME( LEFT ( kssj, 10 ), '%Y-%m-%d ' ),
( FROM_UNIXTIME( LEFT ( kssj, 10 ), '%H' ) / 2 ) * 2
) AS kssj
FROM
#{表名}
) t
GROUP BY
t.kssj
ORDER BY
t.kssj