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 相关文章推荐
多表查询、事务、DCL
Apr 05 MySQL
Idea连接MySQL数据库出现中文乱码的问题
Apr 14 MySQL
Mysql文件存储图文详解
Jun 01 MySQL
解决Mysql的left join无效及使用的注意事项说明
Jul 01 MySQL
浅谈MySQL之select优化方案
Aug 07 MySQL
关于mysql中时间日期类型和字符串类型的选择
Nov 27 MySQL
MySQL中int (10) 和 int (11) 的区别
Jan 22 MySQL
Mysql如何实现不存在则插入,存在则更新
Mar 25 MySQL
MySQL库表太大怎么办? 数据库分库分表项目实践
Apr 11 MySQL
以MySQL5.7为例了解一下执行计划
Apr 13 MySQL
delete in子查询不走索引问题分析
Jul 07 MySQL
MySQL索引失效十种场景与优化方案
May 08 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 广告点击统计代码(php+mysql)
2018/02/21 PHP
Laravel中为什么不使用blpop取队列详析
2018/08/01 PHP
PHP bin2hex()函数基础实例讲解
2019/02/11 PHP
工作中常用到的JS表单验证代码(包括例子)
2010/11/11 Javascript
基于JQUERY的两个ListBox子项互相调整的实现代码
2011/05/07 Javascript
基于JQuery的动态删除Table表格的行和列的代码
2011/05/12 Javascript
jQuery 图片切换插件(代码比较少)
2012/05/07 Javascript
javascript学习笔记(八) js内置对象
2012/06/19 Javascript
js中如何把字符串转化为对象、数组示例代码
2013/07/17 Javascript
jquery退出each循环的写法
2014/02/26 Javascript
JavaScript图像延迟加载库Echo.js
2016/04/05 Javascript
javascript设计模式之module(模块)模式
2016/08/19 Javascript
js判断radiobuttonlist的选中值显示/隐藏其它模块的实现方法
2016/08/25 Javascript
easyui导出excel无法弹出下载框的快速解决方法
2016/11/10 Javascript
JS条形码(一维码)插件JsBarcode用法详解【编码类型、参数、属性】
2017/04/19 Javascript
JS加密插件CryptoJS实现AES加密操作示例
2018/08/16 Javascript
微信小程序canvas.drawImage完全显示图片问题的解决
2018/11/30 Javascript
快速了解Node中的Stream流是什么
2019/02/13 Javascript
layui--js控制switch的切换方法
2019/09/03 Javascript
[03:21]【TI9纪实】Old Boys
2019/08/23 DOTA
Python数据结构与算法之图结构(Graph)实例分析
2017/09/05 Python
解决PyCharm同目录下导入模块会报错的问题
2018/10/13 Python
Django集成celery发送异步邮件实例
2019/12/17 Python
Python字典实现伪切片功能
2020/10/28 Python
CSS3实现多重边框的方法总结
2016/05/31 HTML / CSS
阿迪达斯德国官方网站:adidas德国
2017/07/12 全球购物
美国名表在线商城:Ashford(支持中文)
2019/09/24 全球购物
Timberland俄罗斯官方网上商店:全球领先的户外品牌
2020/03/15 全球购物
三个Unix的命令面试题
2015/04/12 面试题
自我推荐书
2013/12/04 职场文书
大学生创业计划书的范文
2014/01/07 职场文书
初中物理教学反思
2014/01/14 职场文书
运动会口号8字
2014/06/07 职场文书
捐资助学感谢信
2015/01/21 职场文书
网络研修心得体会
2016/01/08 职场文书
python之np.argmax()及对axis=0或者1的理解
2021/06/02 Python