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

标签 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

最佳答案

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

尝试以下操作:

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

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

关于mysql - 如何按小时对mysql查询结果进行分组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20976332/

相关文章:

sql - 特定行数占总数的百分比计算

mysql - 从两列中查找重复项,但显示所有行 MySQL

PHPmyadmin 字段类型

javascript - 从 Javascript 中的 .NET DateTime JSON 格式字符串获取正确的日期值

mysql - SQL 多连接分组

angularjs - 如何在 onsenui 中创建日期和时间选择器?

javascript - 2 个日期之间的日期列表(从 -> 到)

php - Mysql 和 PHP 查询获取子表中的第一行

php - 如何在 laravel 中使用模型调用参数化存储过程

mysql - 导入 SQL 数据库日期时间的默认值无效