我有以下查询,它将从指定设备上的日期范围和固定时间进行查询。我怎么能修改查询,以便在+ - 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
答案 0 :(得分:0)
检查时间戳是"大约"在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
您可能需要调整时间/时间戳格式以满足您的需求。