从几天以来,我一直在尝试从MySQL数据库中每小时计算记录。我有一个包含大量记录的表,我有列 date 和列 time ,其中在DATE中,我的记录日期为2022-05-19格式,而在列timeE 29中,我的记录时间为e 11014:59:38E 211。我试着每一天数一次我每小时有多少记录。就像这样:
DATE HOUR PCS
22-05-18 06-07 11
22-05-18 08-09 20
......... ..... ..
....... 21-22 33我尝试过许多不同的方法,但都没有成功。例如:
SELECT 'Date', count(*) FROM `root4`
where
DATE between '2022-05-01' and '2022-05-1' AND
TIME BETWEEN '06:11:05' AND '07:11:05'任何帮助都会得到高度评价。
发布于 2022-11-15 13:18:36
我建议不要对列使用保留词,因为您将不得不对它们进行大量转义。https://dev.mysql.com/doc/refman/8.0/en/keywords.html
如果将TIME存储为时间戳,则可以使用HOUR()函数提取小时,并按此进行分组:
SELECT
`DATE`,
HOUR(`TIME`) AS `HOUR`,
COUNT(1)
FROM your_table
GROUP BY
`DATE`,
HOUR(`TIME`)如果您碰巧将它存储为文本,则可以使用REGEXP_SUBSTR从时间字符串中获取小时值。
SELECT
`DATE`,
CAST(REGEXP_SUBSTR(`TIME`, '[0-9]+') AS UNSIGNED) AS `HOUR`,
COUNT(1)
FROM your_table
GROUP BY
`DATE`,
CAST(REGEXP_SUBSTR(`TIME`, '[0-9]+') AS UNSIGNED)您可以按需要设置HOUR列的格式,比如使用CONCAT显示01-02而不是1,但这是您的基本设置。
https://stackoverflow.com/questions/74446088
复制相似问题