我在某种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秒前更早。 请问我能错过什么?
答案 0 :(得分:0)
以这种方式试试
SELECT *
FROM notifs
WHERE foo = 'bar'
AND timestamp BETWEEN UNIX_TIMESTAMP(NOW() - INTERVAL 15 SECOND)
AND UNIX_TIMESTAMP(NOW())