我陷入了某种 mysql 逻辑困惑之中。我想从表中选择行时间戳位于当前时间最后 15 秒内的行。
更多详细信息:时间戳字段是使用 php time()
函数生成的,我正在尝试选择时间戳是否比当前时间戳短 15 秒
我尝试过:
SELECT * FROM notifs WHERE `foo` = 'bar' AND `timestamp` > TIME(DATE_SUB(NOW(), INTERVAL 15 SECOND))");
和
SELECT * FROM notifs WHERE `foo` = 'bar' AND `timestamp` < unix_timestamp(NOW() - INTERVAL 15 SECOND)
它们都返回误报。他们给了我一些我知道早于 15 秒前的行。 请问我可能缺少什么?
最佳答案
试试这个方法
SELECT *
FROM notifs
WHERE foo = 'bar'
AND timestamp BETWEEN UNIX_TIMESTAMP(NOW() - INTERVAL 15 SECOND)
AND UNIX_TIMESTAMP(NOW())
关于php - 从表中选择时间戳在 x 秒内的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22522840/