mysql - MySQL HOUR() 开始于 6:30 而不是 6:00
问题描述
如何使用 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);
我正在考虑使用>
,<
但我想有更有效的方法可以做到这一点。我只是不知道。
谢谢!
解决方案
您可以从表中的时间中减去半小时:
SELECT HOUR(date_time - INTERVAL 30 MINUTE) AS thehour, COUNT(data_count) AS Qty FROM table GROUP BY thehour;
顺便说一句,你可能想要SUM(data_count)
,不是COUNT
。
推荐阅读
- regex - 从单元格中提取唯一文本字符/表情符号列表
- d3.js - d3.json() 不会执行。不断收到错误:400
- sql - MS Access - 来自同一个表的多个计数
- ios - UIScrollView Subviews being misplaced when scaled down and Subviews not showing up when rounded
- pandas - 将函数内的循环值写入 Pandas 数据帧
- javascript - 我们是否能够为 CSS 语句组合 JavaScript 等效对象?
- c++ - 使用宏反转 4 个字节的字节顺序而不使用 Zeros C++
- javascript - 我该如何解决?找不到包含文件
- java - 如何在 Apache Cloudstack 4.10 版中编辑 css 和 js 文件
- google-chrome-extension - 在尝试上传 Chrome 扩展屏幕截图时总是收到 Invalid size 错误