php - 从表中选择时间戳在 x 秒内的数据

标签 php mysql sql time timestamp

我陷入了某种 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/

相关文章:

php - 从外部 URL 获取数据时,file_get_contents 是否算作综合浏览量?

php - 如何在 PHP 中运行 ffmpeg 命令

php - Travis CI 只执行单个测试文件 phpunit

php - 将 JSON 响应插入具有多个响应的 MySQL 表中

mysql - MYSQL中如何对字母数字字符进行排序

sql - Oracle SQL - 匹配时更新并插入

php - 为什么这段访问 MySQL 数据库的 PHP 代码不起作用?

mysql - 使用 MySQL/InnoDB 重新平衡表分片

mysql - 按一个字段的时间顺序对行进行排序,然后按另一字段的时间顺序对行进行排序

sql - 如何在数据库字段中选择不属于该字符串的所有内容?