簡體   English   中英

如何選擇最新日期時間減去 30 分鍾之間的數據范圍

[英]How to select range of data between latest DateTime minus 30 minutes

我試圖弄清楚如何使用 MySQL 在 30 分鍾的窗口中選擇表中的最新 DateTime 值以及它附帶的所有先前數據。

例如表:

DateAndTime
---------
09:00:00
08:59:50
08:59:40
08:59:30
08:59:20
08:59:10
08:59:00
08:58:50
08:59:40
...
...
08:30:00

我這樣選擇最長時間:

SELECT MAX(`DateAndTime`) AS "DateAndTime" 
FROM TableA; 

我一直在嘗試INTERVAL()函數,但我似乎無法讓它返回最大時間以外的任何其他行。

我嘗試了什么:

SELECT MAX(`DateAndTime`) AS "DateAndTime" 
FROM TableA; 
AND `DateAndTime` - INTERVAL 30 MINUTE;

我們可以將您的查詢用作WHERE子句中的子查詢:

SELECT DateAndTime 
FROM tableA
WHERE DateAndTime >= 
  (SELECT MAX(DateAndTime) - INTERVAL 30 MINUTE 
  FROM tableA);

如果我們想選擇更多的列,我們只需將它們添加到主查詢中。

如果我們想確保結果按日期排序,我們將添加一個ORDER BY子句:

SELECT DateAndTime 
FROM tableA
WHERE DateAndTime >= 
  (SELECT MAX(DateAndTime) - INTERVAL 30 MINUTE 
  FROM tableA)
ORDER BY DateAndTime;

看起來您需要一個子查詢,因為您需要一個聚合函數來查找最新的時間戳,然后使用該值返回您需要的行。 試試這個:

SELECT DateAndTime
  FROM TableA a
 WHERE DATE_ADD(a.DateAndTime, INTERVAL 30 MINUTE) >=
       (SELECT MAX(DateAndTime) FROM TableA)

暫無
暫無

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

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