这是我的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)
您可以使用date_sub
和interval 2 minute
SELECT * FROM table WHERE b_id='A:340' AND update_time < date_sub(NOW() - interval 2 minute) // 120 is 2 minutes
作为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)
试试这个查询
SELECT * FROM table WHERE b_id='A:340' AND TIME_TO_SEC(update,NOW())<=120
如果您想了解更多以秒为单位的时间差异,请参阅此链接
MySQL:如何以秒为单位获取两个时间戳的差异
你可以试试:
SELECT * FROM table WHERE b_id='A:340' AND update_time BETWEEN DATE_SUB(NOW(), INTERVAL 2 MINUTE) AND NOW()