小编典典

在2个日期和平均每小时输出之间选择数据

sql

我有一系列的温度数据,每分钟收集一次,并放入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命令一无所知。


阅读 152

收藏
2021-04-14

共1个答案

小编典典

试试这个查询

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')
2021-04-14