簡體   English   中英

Select 記錄在接下來的 30 分鍾內

[英]Select records in next 30 minutes

我的queue MySQL 表中有以下結構:

id | post_id | datetime_requested

我的表里有記錄。

1 | 1234 | 2021-10-01 11:20:00

我想每 30 分鍾運行一次SQL 查詢,以獲取接下來30 分鍾內的任何記錄。

因此,如果腳本在 11:00:00 運行,它應該獲取上述記錄。

以下正確獲取記錄:

SELECT * FROM queue WHERE datetime_requested >= ('2021-10-01 11:00' + interval 30 minute);

但這也適用,當它不應該時:

SELECT * FROM queue WHERE datetime_requested >= ('2021-10-01 10:00' + interval 30 minute);

這是為什么?

您的第二個查詢在10:30之后返回帶有datetime_requested的記錄。 這就是為什么您會獲得11:30的行,因為它符合您的條件。

也許嘗試使用BETWEEN

SELECT *
FROM queue
WHERE datetime_requested BETWEEN NOW() AND DATE_ADD(NOW(), INTERVAL 30 MINUTE)

暫無
暫無

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

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