如何按小时对mysql查询结果进行分组?

时间:2014-01-07 16:06:21

标签: mysql date group-by

我会告诉你我在做什么,然后告诉你我的目标。

现在:

SELECT COUNT(*) as `total`, `date` FROM `Events` GROUP BY HOUR(`date`)

这会返回类似的内容:

date       | Count
1389105597 | 125

这就是我想要的,但我不知道如何:

 date       | Count
 00:01      | 10
 01:02      | 13
 02:03      | 3
 (...)
 23:00      | 30

1 个答案:

答案 0 :(得分:3)

您的日期似乎是一个unix时间戳 - 一个整数,表示自1970年1月1日以来的秒数。它们是 NOT 一个mysql日期/时间字符串,这是MySQL的大多数日期/时间函数所期望的。

尝试以下方法:

SELECT count(*) AS total, HOUR(FROM_UNIXTIME(`date`)) AS hour
...
GROUP BY HOUR(FROM_UNIXTIME(`date`))

这会将您的时间戳转换回原生的mysql日期/时间值,您可以使用它来提取小时数。