2010-02-01 58 views
1

我有一個表,其中包含發生在我的應用程序中的事件,如登錄人員和更改設置的人員。按時間限制SQL結果,MySQL

它們對按以下格式事件的日期/時間:

2010-01-29 10:27:29 

是否可以使用SQL來選擇只在最後5分鐘發生的事件?

所以如果日期/時間是2010-01-29 10:27:29它只會選擇發生在10:27:29和10:22:29之間的事件嗎?

乾杯

EEF

回答

3

SELECT富FROM酒吧,在那裏EVENT_TIME> DATE_SUB(NOW(),間隔5分鐘)

(不知道這是否分鐘或分鐘)

+0

這是'MINUTE'並且可以縮短,也:'SELECT foo FROM bar WHERE event_time>(NOW() - INTERVAL 5 MINUTE)' – 2010-02-01 13:47:56

+0

感謝您的補充和澄清。無論如何,也許這是我的C背景,但我更喜歡DATE_SUB,因爲我發現它更易於閱讀,特別是在更復雜的查詢中。 – dbemerlin 2010-02-01 14:27:55

+0

乾杯!完美運作 – RailsSon 2010-02-02 12:25:21

0

你應該提供表和列名,使我們很容易回答你的問題。

你可以寫SQL作爲

SELECT * 
FROM Table 
WHERE DateTimeColumnName <= '2010/01/29 10:27:29' 
AND DateTimeColumnName >= '2010/01/29 10:22:29' 

,或者您可以使用BETWEEN

SELECT * 
FROM Table 
WHERE DateTimeColumnName BETWEEN '2010/01/29 10:22:29' AND '2010/01/29 10:27:29' 

現在,看是否有在MySQL的日期時間函數做一個日期數學所以只需通過一個單一的日期戳,並做數學從它減去5分鐘,並將其用作between子句中的第二個參數。

1
WHERE my_timestamp < DATE_SUB(now(), INTERVAL 5 MINUTE)