我有以下查询,它将从指定设备上的日期范围和固定时间进行查询。我怎样才能修改查询以使时间在+ - 10分钟之内。 例如,如果用户选择下午 4:00,则查询应满足日期范围内每一天的下午 3:50 至下午 4:10。
SELECT Timestamp, AVG(Value)
FROM STATIC_SENSOR_READINGS
WHERE
Node_ID IN ($sdNodeList) AND
Modality = 'Temperature' AND
Timestamp BETWEEN ? AND ? AND // This will be the date range.
date_format(`Timestamp`, '%H:%i') = '$time' // Specific time here
GROUP BY Timestamp
最佳答案
要检查 mysql 中的时间戳是否“大致”相等,您可以使用 TIMESTAMPDIFF()
函数。
在您的示例中,您需要类似以下内容:
SELECT Timestamp, AVG(Value)
FROM STATIC_SENSOR_READINGS
WHERE
Node_ID IN ($sdNodeList) AND
Modality = 'Temperature' AND
Timestamp BETWEEN ? AND ? AND // This will be the date range.
ABS(TIMESTAMPDIFF(MINUTES, Timestamp, '$time')) < 10
GROUP BY Timestamp
您可能需要调整时间/时间戳格式以满足您的需要。
关于mysql - 时间间隔内的SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27009132/