首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >小时计数MySQL

问小时计数MySQL
EN

Stack Overflow用户
提问于 2022-11-15 13:02:41
回答 1查看 35关注 0票数 -2

从几天以来,我一直在尝试从MySQL数据库中每小时计算记录。我有一个包含大量记录的表,我有列 date 和列 time ,其中在DATE中,我的记录日期为2022-05-19格式,而在列timeE 29中,我的记录时间为e 11014:59:38E 211。我试着每一天数一次我每小时有多少记录。就像这样:

代码语言:javascript
复制
DATE       HOUR     PCS
22-05-18   06-07    11
22-05-18   08-09    20
.........  .....    ..
.......    21-22    33

我尝试过许多不同的方法,但都没有成功。例如:

代码语言:javascript
复制
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'

任何帮助都会得到高度评价。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-11-15 13:18:36

我建议不要对列使用保留词,因为您将不得不对它们进行大量转义。https://dev.mysql.com/doc/refman/8.0/en/keywords.html

如果将TIME存储为时间戳,则可以使用HOUR()函数提取小时,并按此进行分组:

代码语言:javascript
复制
SELECT
  `DATE`, 
  HOUR(`TIME`) AS `HOUR`, 
  COUNT(1)
FROM your_table
GROUP BY 
  `DATE`, 
  HOUR(`TIME`)

如果您碰巧将它存储为文本,则可以使用REGEXP_SUBSTR从时间字符串中获取小时值。

代码语言:javascript
复制
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,但这是您的基本设置。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74446088

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档