我想使用highcharts來查看上一小時的溫度行爲。時區問題使用mysql中最後一小時的平均值的簡單溫度趨勢
我每小時記錄20到30個溫度值。 在這裏,我想在最後一小時提取4到6個平均值(10或15分鐘期間的一個值)並繪製它們。也許我會將其改爲3個值(一個20分鐘)以獲得更平滑的東西。
我有這樣的值(例如):
mysql> SELECT date,valeur FROM temperature
+---------------------+--------+
| date | valeur |
+---------------------+--------+
| 2013-09-26 11:30:40 | 25.2 |
| 2013-09-26 11:33:19 | 25.4 |
| 2013-09-26 11:34:12 | 25.5 |
| 2013-09-26 11:38:37 | 25.4 |
| 2013-09-26 11:39:30 | 25.4 |
| 2013-09-26 11:40:23 | 25.4 |
| 2013-09-26 11:43:02 | 25.4 |
| 2013-09-26 11:45:41 | 25.3 |
| 2013-09-26 11:47:33 | 25.3 |
| 2013-09-26 11:51:07 | 25.4 |
| 2013-09-26 11:51:52 | 25.3 |
...
我試圖用這個命令解壓:
SELECT ROUND(UNIX_TIMESTAMP(date)/(15 * 60)) AS timekey, ROUND(AVG(valeur),1) AS a FROM temperature WHERE date >= (now() - INTERVAL 1 HOUR) GROUP BY timekey ORDER BY DATE;
但我沒有得到任何輸出。如果我將時間間隔更改爲5小時,則獲得16個值:
[1534861, 24.600000]
[1534862, 24.600000]
[1534863, 24.600000]
[1534864, 24.700000]
[1534865, 24.700000]
[1534866, 24.600000]
[1534867, 24.600000]
[1534868, 24.600000]
[1534869, 24.600000]
[1534870, 24.600000]
[1534871, 24.700000]
[1534872, 24.700000]
[1534873, 24.700000]
[1534874, 24.800000]
[1534875, 25.000000]
[1534876, 25.200000]
任何想法如何更正此mysql請求?
感謝大家
格雷格
編輯 - 看到選擇的答案:該代碼是好的,但時區不!
你是對的。使用SET time_zone ='非洲/布拉柴維爾';它完美的作品!這解釋了這種奇怪的行爲,從最後一小時失蹤的其他查詢中得知。非常感謝您的回答! – iero
NP與使用不同TZs的服務器一起工作時的常見問題 – AdrianBR