mysql每五分钟取一次数据_mysql – 给定时间内每5分钟的平均数据
分組到間隔
您應該使用group by為每個要平均的時間間隔創建一個組.
select avg(Column), convert((min(datetime) div 500)*500 + 230, datetime) as time
from Databasename.tablename
where datetime BETWEEN '2012-09-08 00:00:00' AND '2012-09-08 15:30:00'
group by datetime div 500
這利用了一個事實,即日期和時間可以隱含地轉換為數字,然后格式為YYMMDDhhmmss.將這樣的數字除以100會剝離秒數,并且類似地除以500會產生每5分鐘間隔的唯一數字.
我選擇的附加列將給出間隔的中間:從間隔的任何時間(這里選擇最小值,但實際上并不重要),變成5分鐘的間隔號,回到日期和時間數字,然后加兩分半鐘.您可以使用類似的語法來計算間隔的開頭(簡單地保留230)或(包含)結束(459).
范圍處理結束
請注意,您的BETWEEN范圍將包括15:30:00之間的行,但此時間隔開始時沒有其他行.也許您想從您的選擇中排除范圍的結尾:
where datetime >= '2012-09-08 00:00:00' AND datetime < '2012-09-08 15:30:00'
為什么你得到NULL
至于為什么你的查詢產生NULL:要進行區間運算,你不要將整個區間事物用引號括起來,并且你使用奇異名稱作為時間單位.即
'2012-09-08 15:30:00' + INTERVAL 5 minute
但這只是將范圍擴展到2012-09-08 15:35:00,仍然沒有創建你想要的5分鐘間隔.你編寫它的方式,你試圖添加兩個字符串,這在MySQL中是不可能的,除非字符串可以轉換為數字,在這種情況下將添加這些數字.
您可能希望使用區間運算來計算區間的獨占結束,即區間后的第一秒:
convert((min(datetime) div 500)*500, datetime) + INTERVAL 5 minute as endOfInterval
簡單地添加500而不是我的查詢的230將不起作用,因為結果數字可能表示每小時的最后一個間隔的無效日期.
總結
以上是生活随笔為你收集整理的mysql每五分钟取一次数据_mysql – 给定时间内每5分钟的平均数据的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Excel制作选择题试卷,Python快
- 下一篇: linux cmake编译源码,linu