为什么这个MySQL查询返回0结果

时间:2011-02-14 17:20:08

标签: mysql

我试图在过去的5分钟内获得所有记录,但它什么也没有返回..

SELECT * FROM (`user_actions`) WHERE `IP` = '127.0.0.1' AND `type` = 'Failed Login' AND date =DATE_SUB(NOW(), INTERVAL 5 MINUTE) 

2 个答案:

答案 0 :(得分:2)

它没有返回任何内容,因为没有任何结果可以满足您的要求.... 完全 5分钟前的日期。

您不应该将=运算符用于DATE,您应该使用不等式。

也就是说,您希望日期大于5分钟前

答案 1 :(得分:2)

它应该是date >而不是date =,它只匹配完全等于5分钟前的时间的行。

例如,如果当前是下午12:30,要查找最近5分钟内的行,您需要时间大于12:25 PM的所有行。仅查询时间等于12:25 PM的行不会给你那些记录在下午12:26,下午12:27等等。

SELECT * FROM user_actions WHERE IP = '127.0.0.1' AND type = 'Failed Login' AND date > DATE_SUB(NOW(), INTERVAL 5 MINUTE)