选择最近2分钟内的所有记录 - MySql

时间:2015-07-10 06:37:47

标签: php mysql

这是我的mysql表

-----   -----------   -------------------
b_id    update_time   update_time_text
-----   -----------   -------------------
A:340   1436507350    10-07-2015 11:19:10
A:340   1436507707    10-07-2015 11:25:07
A:340   1436509704    10-07-2015 11:58:24
A:340   1436507828    10-07-2015 11:27:08

这是我的查询

SELECT * FROM table WHERE b_id='A:340' AND update_time < (NOW() - 120) // 120 is 2 minutes

我如何在最后2分钟内选择记录,因为我的查询返回空记录,我不确定是否需要使用unix时间(update_time)或可读时间(update_time_text)

4 个答案:

答案 0 :(得分:2)

您可以使用date_subinterval 2 minute

SELECT * FROM table WHERE b_id='A:340' AND update_time < date_sub(NOW() - interval 2 minute) // 120 is 2 minutes

答案 1 :(得分:1)

因为update_time是一个unix时间戳字段,然后将NOW()替换为UNIX_TIMESTAMP()

SELECT * FROM table WHERE b_id='A:340' AND update_time >= (UNIX_TIMESTAMP() - 120)

超过2分钟的记录:

SELECT * FROM table WHERE b_id='A:340' AND update_time < (UNIX_TIMESTAMP() - 120)

答案 2 :(得分:0)

尝试此查询

SELECT * FROM table WHERE b_id='A:340' AND TIME_TO_SEC(update,NOW())<=120

如果您想要更多详细信息,请参阅此链接

MySQL: how to get the difference between two timestamps in seconds

答案 3 :(得分:0)

你可以试试这个:

SELECT * FROM table WHERE b_id='A:340' AND update_time BETWEEN DATE_SUB(NOW(), INTERVAL 2 MINUTE) AND NOW()