時間:2022-05-08來源:www.farandoo.com作者:電腦系統城
在時間序列處理中,采集到的數據保存在數據表中,采集的頻率可能是固定間隔(10秒,1小時或者1天),但往往是不固定的。
處理的時候要固定一個時間間隔進行查詢,比如10秒一次的采樣,處理的時候變成每小時一次。
可以用以下方法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
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 ; |
調用的時候:
1 2 3 4 |
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); |
1 2 3 4 5 6 7 8 9 10 11 12 |
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 |
以上為個人經驗,希望能給大家一個參考。
2022-05-08
Mysql中常用的幾種join連接方式總結匯總2022-03-09
MySQL存儲過程圖文實例講解教程2022-03-01
千萬級用戶系統SQL調優實戰分享為什么要主從同步? 主從同步的原理 MYSQL數據庫進行主從同步 創建兩個MYSQL數據庫 初始化,安裝主機數據庫 配置從機 測試主從同步 ...
2022-03-01