mysql查询过去24小时内每小时数据量的方法(精确到分钟)

 更新时间:2023年03月04日 16:49:06   作者:_Aimy  
我们经常遇到类似这样的需求,查询最近N秒、N分钟、N小时的数据及N天的数据,下面这篇文章主要给大家介绍了关于mysql查询过去24小时内每小时数据量(精确到分钟)的相关资料,需要的朋友可以参考下

项目场景:

获取过去24小时每小时数据量(没有为0)

问题描述

时间段要求精确到分钟,即:10.33 ~ 11.33,11.33~12.33……

解决方案:

第一步:获取24个时间点:

1.使用数据量一定大于24的表(可以是数据库自带的,也可以是自己项目的)

SET @i=-1;
SELECT DATE_SUB( NOW(),INTERVAL ( (@i:=@i+1) ) HOUR ) AS 'time' 
FROM  mysql.help_category 
WHERE @i<23

2.建一个24个数据量的表

SET @i=-1;
SELECT DATE_SUB( NOW(), INTERVAL((@i:=@i+1)) HOUR) AS 'time' 
FROM 
(SELECT *  FROM 
	(SELECT '1' AS a UNION SELECT '2' UNION SELECT '3' UNION SELECT '4'   ) AS a
 	JOIN 
	( SELECT  '1' UNION  '2' UNION SELECT '3' UNION SELECT '4' UNION SELECT '5' UNION SELECT '6' ) AS b
 ) AS c 
 WHERE @i<23

NOW() 获取当前时间,也是最后一个时间节点

DATE_SUB() 函数从日期减去指定的时间间隔

INTERVAL 关键字可以用于计算时间间隔

HOUR 间隔类型(小时)

使用格式:DATE_SUB(date,INTERVAL expr type)

获取的时间点如下:

查询结果

第二步:将要查询的表的时间向右偏移至整点,并查询时段内数据量:

将10.33 ~ 11.33之间的数据的时间,显示为:11.00~12.00

这样小时为11的数据就是原数据库中10.33 ~ 11.33的数据,方便之后的查询

SELECT DATE_FORMAT(DATE_SUB( create_time,INTERVAL MINUTE(NOW())-60 MINUTE ) ,'%Y-%m-%d %H') AS date, count(*) AS num 
FROM mytable GROUP BY date

结果如下:

查询结果

第二步:多表连接查询:

SET  @i=-1;
SELECT t.time, ifnull(num,0) AS count FROM 
	(SELECT DATE_SUB( NOW(),INTERVAL ( (@i:=@i+1) ) HOUR ) AS 'time' 
	FROM  mysql.help_category where @i<23) 
AS t 
LEFT JOIN 
	(SELECT DATE_FORMAT(DATE_SUB( create_time,INTERVAL MINUTE(NOW())-60 MINUTE ) ,'%Y-%m-%d %H') AS date, count(*) AS num 
	FROM mytable GROUP BY date ) 
AS sa 
ON sa.date = DATE_FORMAT( t.time,'%Y-%m-%d %H')  GROUP BY t.time

结果如下:

查询结果

count表示的是时间节点前一个小时的数据量,不包含此节点,如果要包含此节点,可以将上面的60改成59

附:Mysql 查询每小时数据的总数

1.通过sql查询每小时的数据总数,没有先不管

 SELECT
      hour(表_时间)  hour,
      count(表_id) count
    FROM 表_name
    //限制年月日(current_date  2022-03-05)
    WHERE  date_format(表_时间, '%Y-%m-%d') = current_date//格式化时间
    GROUP BY date_format(表_时间, '%Y%m%d-%H'), hour//按每小时分组

2.通过map,数组工具把没有数据的小时置为0;

总结

到此这篇关于mysql查询过去24小时内每小时数据量的文章就介绍到这了,更多相关mysql查询每小时数据量内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Windows下mysql5.7.18安装配置教程

    Windows下mysql5.7.18安装配置教程

    这篇文章主要为大家详细介绍了Windows下mysql5.7.18安装配置教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-07-07
  • MySql 8.0.11 安装过程及 Navicat 链接时遇到的问题小结

    MySql 8.0.11 安装过程及 Navicat 链接时遇到的问题小结

    这篇文章主要介绍了MySql 8.0.11 安装过程及 Navicat 链接时遇到的问题,需要的朋友可以参考下
    2018-06-06
  • MySQL外键约束的删除和更新总结

    MySQL外键约束的删除和更新总结

    这篇文章主要给大家总结MySQL外键约束的删除和更新,文中通过代码示例和图文介绍的非常详细,对大家了解MySQL外键约束有一定的帮助,需要的朋友可以参考下
    2024-02-02
  • MySQL日志管理详解

    MySQL日志管理详解

    这篇文章主要介绍了MySQL日志管理详解,本文讲解了日志种类、日志功能、MySQL中日志相关常用的服务器变量说明等内容,需要的朋友可以参考下
    2015-07-07
  • 使用Visual Studio Code连接MySql数据库并进行查询

    使用Visual Studio Code连接MySql数据库并进行查询

    这篇文章主要介绍了使用Visual Studio Code连接MySql数据库并进行查询,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • sql索引的介绍以及使用规则详析

    sql索引的介绍以及使用规则详析

    索引是一种数据结构,可以加快我们查询的效率,但是创建索引需要复制数据,会占用资源,下面这篇文章主要给大家介绍了关于sql索引的介绍以及使用规则的相关资料,需要的朋友可以参考下
    2023-04-04
  • MySQL日期格式以及日期函数举例详解

    MySQL日期格式以及日期函数举例详解

    这篇文章主要给大家介绍了关于MySQL日期格式及日期函数的相关资料,日期在数据库中是一个常见且重要的数据类型,在MySQL中我们可以使用各种函数和格式化选项来处理和显示日期,需要的朋友可以参考下
    2023-11-11
  • MySQL创建用户和权限管理的方法

    MySQL创建用户和权限管理的方法

    这篇文章主要介绍了MySQL创建用户和权限管理的方法,文中示例代码非常详细,帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-07-07
  • MySQL为数据表建立索引的原则详解

    MySQL为数据表建立索引的原则详解

    这篇文章主要为大家详细介绍了MySQL为数据表建立索引的原则,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-03-03
  • MySQL实现字段或字符串拼接的三种方式总结

    MySQL实现字段或字符串拼接的三种方式总结

    这篇文章主要为大家详细介绍了MySQL中实现字段或字符串拼接的三种方式,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-01-01

最新评论