我有一系列的温度数据,每分钟收集一次,并放入MySQL数据库中。我想编写一个查询以选择过去24小时内的所有温度,然后将其平均并划分为小时数。是否可以通过SQL命令执行?
我认为这是在两个日期/时间之间选择所有记录的情况,但这就是我遇到的问题。
数据示例:
ID Temp Timestamp 3922 22 2015-11-17 14:12:23 3923 22 2015-11-17 14:13:23 3924 22.05 2015-11-17 14:14:23 3925 22.05 2015-11-17 14:15:23
所需的输出/结果
Temp Time 22 2015-11-17 14:00:00 23 2015-11-17 15:00:00 23 2015-11-17 16:00:00 22.05 2015-11-17 17:00:00
我希望您能有所帮助,因为我对SQL命令一无所知。
试试这个查询
SELECT AVG(Temp) AS Temp, DATE_FORMAT(Timestamp, '%Y-%m-%d %H:00:00') AS Time FROM Table WHERE DATE_FORMAT(Timestamp, '%Y-%m-%d %H:00:00') >= DATE_FORMAT(DATE_ADD(NOW(), INTERVAL -1 DAY), '%Y-%m-%d %H:00:00') GROUP BY DATE_FORMAT(Timestamp, '%Y-%m-%d %H:00:00')