SQL在时间间隔内

时间:2014-11-19 04:45:27

标签: mysql sql mysqli

我有以下查询,它将从指定设备上的日期范围和固定时间进行查询。我怎么能修改查询,以便在+ - 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

1 个答案:

答案 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

您可能需要调整时间/时间戳格式以满足您的需求。