我想将查询限制为过去10天内输入的结果。 TIMESTAMP列称为Date。我该怎么做?
$result = mysql_query("SELECT * FROM Posts WHERE (City = '$city2') ORDER by Comments DESC LIMIT 5");
由于
答案 0 :(得分:27)
SELECT *
FROM Comments
WHERE (City = '$city2') AND (`Date` > DATE_SUB(now(), INTERVAL 10 DAY));
注意:调用“日期”列是不好的做法,因为它是一个保留字。
答案 1 :(得分:13)
您可以使用DATEDIFF或已发布的DATE_SUB
。另外,我建议不要使用像“Date”这样的保留字来表示列名。代码示例:
WHERE DATEDIFF(NOW(), `Date`) < 10
答案 2 :(得分:4)
尝试使用date_sub
select * from Comments
where City = '{$city2}' and
`Date` > date_sub(now(), interval 10 day)
答案 3 :(得分:0)
假设您的数据是每小时一次,也可以使用:
(SELECT * FROM comments ORDER BY DateTime desc LIMIT 240) order by DateTime
我发现将小时精确返回10天更为准确。