簡體   English   中英

獲取最后插入到該日期之前10分鍾之間的行

[英]Get rows between last inserted and 10 minutes before that date

有人可以指出我正確的方向。 我需要從上次插入的日期到該日期之前的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

謝謝。

SELECT x.* 
  FROM tblTable x
  JOIN 
     ( SELECT MAX(datum) max_datum FROM tblTable ) y 
    ON x.datum >= y.max_datum - INTERVAL 10 minute;

http://sqlfiddle.com/#!2/3c62c/18

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM