According to this documentation据我了解,使用 INTERVAL 8 DAY
将返回任何大于 8 天的记录。
在我的语句中,$moztimestampnow
是这种格式的当前日期2015-05-21
,moztimestamp
属于数据库中的列其中包含我需要计算的其他较早日期。
我不确定是否可以使用 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/