MySQL HOUR()从6:30而不是6:00开始

时间:2018-05-16 07:25:43

标签: mysql

我如何使用HOUR功能或类似功能在MySQL中显示结果,可以给我6:30-7:30而不是6:00-7:00?

我使用datetime和另一列作为int数据类型。

此处的示例数据:

+----+--------------------------------------+---------------------+---------+-------+----------+-------------+
| id | data_uuid                            | date_time           | tool_id | param | position | data_count |
+----+--------------------------------------+---------------------+---------+-------+----------+-------------+
|  1 | 6f52b0b0-58c2-11e8-824e-af23caf3a508 | 2018-05-16 12:34:34 | DDS12   | L0    | LOADER   |           1 |
|  2 | 70243180-58c2-11e8-824e-af23caf3a508 | 2018-05-16 12:34:36 | DDS12   | U1    | UNLOADER |           1 |
|  3 | 70b7bef0-58c2-11e8-824e-af23caf3a508 | 2018-05-16 12:34:37 | DDS12   | L0    | LOADER   |           1 |
|  4 | 718b89b0-58c2-11e8-824e-af23caf3a508 | 2018-05-16 12:34:38 | DDS12   | U1    | UNLOADER |           1 |
|  5 | 7223f920-58c2-11e8-824e-af23caf3a508 | 2018-05-16 12:34:39 | DDS12   | L0    | LOADER   |           1 |
|  6 | 72feefd0-58c2-11e8-824e-af23caf3a508 | 2018-05-16 12:34:41 | DDS12   | U1    | UNLOADER |           1 |

我想看到的是这样的:

|    Hourly   | Qty |
| 6:30 - 7:30 | 245 |
| 7:30 - 8:30 | 134 |

这是我的疑问(我被困):

SELECT HOUR(date_time), COUNT(data_count) AS Qty FROM table GROUP BY HOUR(date_time);

我正在考虑使用><,但我想还有更有效的方法。我只是不知道。

谢谢!

1 个答案:

答案 0 :(得分:2)

你可以从表中的时间减去半小时:

SELECT HOUR(date_time - INTERVAL 30 MINUTE) AS thehour, COUNT(data_count) AS Qty FROM table GROUP BY thehour;

顺便说一下,您可能需要SUM(data_count),而不是COUNT