mysql - 从mysql中提取两个日期之间的差异大于8天的记录

标签 mysql

According to this documentation据我了解,使用 INTERVAL 8 DAY 将返回任何大于 8 天的记录。

在我的语句中,$moztimestampnow是这种格式的当前日期2015-05-21moztimestamp属于数据库中的列其中包含我需要计算的其他较早日期。

我不确定是否可以使用 moztimestamp 作为此语句中的列名称,但它不起作用。

如何获得天数差异?

$moztimestampnow = date('Y-m-d');
SELECT *,DATEDIFF('$moztimestampnow',moztimestamp) INTERVAL 8 DAYS FROM backlinks WHERE user_id = '$user_id' LIMIT 10

最佳答案

首先,您误解了文档。 interval 关键字用于向日期添加值。如果要过滤数据,则需要使用 where 子句。

就您而言,最好的 where 子句如下所示:

SELECT bl.*, DATEDIFF('$moztimestampnow', moztimestamp)
FROM backlinks bl
WHERE user_id = '$user_id' and
      moztimestamp <= DATE_SUB(CURDATE(), INTERVAL 8 DAY)
LIMIT 10

这可以利用反向链接(user_id,moztimestamp)上的索引。此外,您可能应该有一个 ORDER BY 子句。使用 LIMIT 时这是预期的。

关于mysql - 从mysql中提取两个日期之间的差异大于8天的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30385935/

相关文章:

mysql - Moodle 和文件格式错误

php - 组合字母数字时如何选择真值?

php - 如何在 Laravel 4 的 View 中获取数据

mysql - 如何查找某些表中最后修改的行

更新后mysql触发

php - 如何一次插入所有下拉记录?

java - log4j2 的 SQL 异常

mysql - 根据Mysql中同表上的Another一列更新列数据

mysql - 选择 MySQL 表列中的非重复记录

php - 使用 PHP 查询 MySQL