系統城裝機大師 - 唯一官網:www.farandoo.com!

當前位置:首頁 > 數據庫 > Mysql > 詳細頁面

MySql數據庫時間序列間隔查詢方式

時間:2022-05-08來源:www.farandoo.com作者:電腦系統城

目錄
  • mysql時間序列間隔查詢
  • mysql查詢指定時間間隔數據

mysql時間序列間隔查詢

在時間序列處理中,采集到的數據保存在數據表中,采集的頻率可能是固定間隔(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);

mysql查詢指定時間間隔數據

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

以上為個人經驗,希望能給大家一個參考。

分享到:

相關信息

系統教程欄目

欄目熱門教程

人氣教程排行

站長推薦

熱門系統下載

jlzzjlzz亚洲乱熟在线播放