MySql数据库 查询时间序列间隔


Posted in MySQL onMay 11, 2022

mysql时间序列间隔查询

在时间序列处理中,采集到的数据保存在数据表中,采集的频率可能是固定间隔(10秒,1小时或者1天),但往往是不固定的。

处理的时候要固定一个时间间隔进行查询,比如10秒一次的采样,处理的时候变成每小时一次。

可以用以下方法:

DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `proc_RealData`(IN `timeBegin` DATETIME, IN `timeEnd` DATETIME, IN `timeInterval` INT)
    MODIFIES SQL DATA
    SQL SECURITY INVOKER
    COMMENT '/*存储过程:按起始、终止时间,以及时间间隔,抽取数据*/'
BEGIN
        SET @time := '1000-01-01 00:00:00';
        SET @interval := timeInterval;
        SELECT * FROM realdata_table
        WHERE `realdata_table`.`received_time` >= timeBegin AND `realdata_table`.`received_time` <= timeEnd
        AND TIMESTAMPDIFF( SECOND, @time, `realdata_table`.`received_time` ) >= @interval
        AND @time := `realdata_table`.`received_time`;
END$$
DELIMITER ;

调用的时候:

SET @p0='2016-03-29 00:00:00'; 
SET @p1='2016-03-31 00:00:00'; 
SET @p2='3600'; 
CALL `proc_RealData`(@p0, @p1, @p2);

mysql查询指定时间间隔数据

CREATE DEFINER=`root`@`localhost` PROCEDURE `proc_RealData`(IN `timeBegin` DATETIME, IN `timeEnd` DATETIME, IN `timeInterval` INT)
    MODIFIES SQL DATA
    SQL SECURITY INVOKER
    COMMENT '/*存储过程:按起始、终止时间,以及时间间隔,抽取数据*/'
BEGIN
        SET @time := '1000-01-01 00:00:00';
        SET @interval := timeInterval;
        SELECT * FROM em_air_humidity
        WHERE `em_air_humidity`.`DateTime` >= timeBegin AND `em_air_humidity`.`DateTime` <= timeEnd
        AND TIMESTAMPDIFF( SECOND, @time, `em_air_humidity`.`DateTime` ) >= @interval
        AND @time := `em_air_humidity`.`DateTime`;
END
MySQL 相关文章推荐
MySQL Shell的介绍以及安装
Apr 24 MySQL
mysql 8.0.24版本安装配置方法图文教程
May 12 MySQL
详解MySQL中的主键与事务
May 27 MySQL
MySQL开启事务的方式
Jun 26 MySQL
MySQL系列之十三 MySQL的复制
Jul 02 MySQL
SQL实现LeetCode(176.第二高薪水)
Aug 04 MySQL
详解MySQL中timestamp和datetime时区问题导致做DTS遇到的坑
Dec 06 MySQL
JMeter对MySQL数据库进行压力测试的实现步骤
Jan 22 MySQL
MySQL优化常用的19种有效方法(推荐!)
Mar 17 MySQL
MySQL中优化SQL语句的方法(show status、explain分析服务器状态信息)
Apr 09 MySQL
Mysql 文件配置解析介绍
May 06 MySQL
MySQL主从切换的超详细步骤
Jun 28 MySQL
Mysql中常用的join连接方式
May 11 #MySQL
MySQL的prepare使用以及遇到的bug
May 11 #MySQL
MySQL批量更新不同表中的数据
May 11 #MySQL
mysql查找连续出现n次以上的数字
May 11 #MySQL
mysql如何查询连续记录
May 11 #MySQL
mysql 体系结构和存储引擎介绍
MySQL数据库 安全管理
May 06 #MySQL
You might like
基于PHP+MySQL的聊天室设计
2006/10/09 PHP
执行、获取远程代码返回:file_get_contents 超时处理的问题详解
2013/06/25 PHP
使用PHP导出Word文档的原理和实例
2013/10/21 PHP
PHP实现上传文件并存进数据库的方法
2015/07/16 PHP
php和redis实现秒杀活动的流程
2019/07/17 PHP
IE 缓存策略的BUG的解决方法
2007/07/21 Javascript
Javascript 对象的解释
2008/11/24 Javascript
深入认识javascript中的eval函数
2009/11/02 Javascript
IE7中javascript操作CheckBox的checked=true不打勾的解决方法
2009/12/07 Javascript
JavaScript事件处理的方式(三种)
2016/04/26 Javascript
js给table赋值的实例代码
2016/10/13 Javascript
Html5+jQuery+CSS制作相册小记录
2016/12/30 Javascript
jQuery命名空间与闭包用法示例
2017/01/12 Javascript
NodeJS测试框架mocha入门教程
2017/03/28 NodeJs
微信小程序 支付后台java实现实例
2017/05/09 Javascript
nodejs批量下载图片的实现方法
2017/05/19 NodeJs
vue v-for循环重复数据无法添加问题解决方法【加track-by='索引'】
2019/03/15 Javascript
JavaScript实现汉字转换为拼音及缩写的方法示例
2019/03/28 Javascript
详解vuex数据传输的两种方式及this.$store undefined的解决办法
2019/08/26 Javascript
JS数组Reduce方法功能与用法实例详解
2020/04/29 Javascript
Element Dropdown下拉菜单的使用方法
2020/07/26 Javascript
[01:15:36]加油刀塔第二期网络版
2014/08/09 DOTA
[06:20]2015国际邀请赛第三日top10
2015/08/08 DOTA
使用go和python递归删除.ds store文件的方法
2014/01/22 Python
Python list操作用法总结
2015/11/10 Python
详解Python网络爬虫功能的基本写法
2016/01/28 Python
Python使用multiprocessing实现一个最简单的分布式作业调度系统
2016/03/14 Python
浅谈python for循环的巧妙运用(迭代、列表生成式)
2017/09/26 Python
urllib和BeautifulSoup爬取维基百科的词条简单实例
2018/01/17 Python
浅谈flask中的before_request与after_request
2018/01/20 Python
python 用正则表达式筛选文本信息的实例
2018/06/05 Python
解决Python print输出不换行没空格的问题
2018/11/14 Python
家得宝墨西哥官网:The Home Depot墨西哥
2019/11/18 全球购物
办公室年度工作总结2015
2015/05/21 职场文书
2015年财务人员个人工作总结
2015/07/27 职场文书
年终工作总结范文
2019/06/20 职场文书