我有一个表,其中包含发生在我的应用程序中的事件,如登录人员和更改设置的人员。按时间限制SQL结果,MySQL
它们对按以下格式事件的日期/时间:
2010-01-29 10:27:29
是否可以使用SQL来选择只在最后5分钟发生的事件?
所以如果日期/时间是2010-01-29 10:27:29它只会选择发生在10:27:29和10:22:29之间的事件吗?
干杯
EEF
我有一个表,其中包含发生在我的应用程序中的事件,如登录人员和更改设置的人员。按时间限制SQL结果,MySQL
它们对按以下格式事件的日期/时间:
2010-01-29 10:27:29
是否可以使用SQL来选择只在最后5分钟发生的事件?
所以如果日期/时间是2010-01-29 10:27:29它只会选择发生在10:27:29和10:22:29之间的事件吗?
干杯
EEF
SELECT富FROM酒吧,在那里EVENT_TIME> DATE_SUB(NOW(),间隔5分钟)
(不知道这是否分钟或分钟)
你应该提供表和列名,使我们很容易回答你的问题。
你可以写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子句中的第二个参数。
WHERE my_timestamp < DATE_SUB(now(), INTERVAL 5 MINUTE)
这是'MINUTE'并且可以缩短,也:'SELECT foo FROM bar WHERE event_time>(NOW() - INTERVAL 5 MINUTE)' – 2010-02-01 13:47:56
感谢您的补充和澄清。无论如何,也许这是我的C背景,但我更喜欢DATE_SUB,因为我发现它更易于阅读,特别是在更复杂的查询中。 – dbemerlin 2010-02-01 14:27:55
干杯!完美运作 – RailsSon 2010-02-02 12:25:21