有人能指出我正确的方向吗?我需要将上次插入日期的数据检索到该日期之前的10分钟。
这是我的代码,有没有更好的方法来写这个?
SELECT Datum, Value
FROM tableX
WHERE ItemFK = 109
AND Datum BETWEEN
DATE_SUB(
(
SELECT Datum
FROM tableX
WHERE ItemFK = 109
ORDER BY Datum DESC
LIMIT 1
), INTERVAL 10 MINUTE
)
AND (
SELECT Datum
FROM tableX
WHERE ItemFK = 109
ORDER BY Datum DESC
LIMIT 1
)
ORDER BY Datum DESC
我不能使用DATE_SUB(NOW(),INTERVAL 10 MINUTE) AND NOW()
,因为我不知道上次插入的时间。
其他方式是两个查询。一个用于检索上一个日期,另一个用于从该日期获取数据到该日期之前的10分钟。
修改 添加了SQL Fiddle http://sqlfiddle.com/#!2/3c62c/1
感谢。
答案 0 :(得分:0)
SELECT x.*
FROM tblTable x
JOIN
( SELECT MAX(datum) max_datum FROM tblTable ) y
ON x.datum >= y.max_datum - INTERVAL 10 minute;