【发布时间】:2011-10-19 10:23:11
【问题描述】:
我想将查询限制在过去 10 天内输入的结果。 TIMESTAMP 列称为日期。我该怎么做?
$result = mysql_query("SELECT * FROM Posts WHERE (City = '$city2') ORDER by Comments DESC LIMIT 5");
谢谢
【问题讨论】:
我想将查询限制在过去 10 天内输入的结果。 TIMESTAMP 列称为日期。我该怎么做?
$result = mysql_query("SELECT * FROM Posts WHERE (City = '$city2') ORDER by Comments DESC LIMIT 5");
谢谢
【问题讨论】:
假设你的数据是每小时也可以使用:
(SELECT * FROM comments ORDER BY DateTime desc LIMIT 240) order by DateTime
我发现这更准确地返回 10 天到小时。
【讨论】:
SELECT *
FROM Comments
WHERE (City = '$city2') AND (`Date` > DATE_SUB(now(), INTERVAL 10 DAY));
注意:将列称为“日期”是一种不好的做法,因为它是一个保留字。
【讨论】:
您可以使用DATEDIFF,或者,正如已经发布的那样,DATE_SUB。另外,我建议不要对列名使用“日期”等保留字。您的代码示例:
WHERE DATEDIFF(NOW(), `Date`) < 10
【讨论】:
尝试使用 date_sub
select * from Comments
where City = '{$city2}' and
`Date` > date_sub(now(), interval 10 day)
【讨论】: