MySQL仅选择Timestamp最近10天的位置

lis*_*aro 13 php mysql timestamp

我想将查询限制为过去10天内输入的结果.TIMESTAMP列称为Date.我该怎么做?

$result = mysql_query("SELECT * FROM Posts WHERE (City = '$city2') ORDER by Comments DESC LIMIT 5");
Run Code Online (Sandbox Code Playgroud)

谢谢

Mar*_*c B 28

SELECT *
FROM Comments
WHERE (City = '$city2') AND (`Date` > DATE_SUB(now(), INTERVAL 10 DAY));
Run Code Online (Sandbox Code Playgroud)

注意:调用"日期"列是不好的做法,因为它是一个保留字.

  • 确认您的日期字段包含正确的日期,实际上是日期时间字段.如果它是一个int(例如unix时间戳),则此查询将不起作用,您必须使用unix_timestamp/from_unixtime进行适当的转换. (2认同)

And*_*rew 13

您可以使用DATEDIFF或已发布的DATE_SUB.另外,我建议不要使用像"Date"这样的保留字来表示列名.代码示例:

WHERE DATEDIFF(NOW(), `Date`) < 10
Run Code Online (Sandbox Code Playgroud)


cor*_*tge 5

尝试使用 date_sub

select * from Comments 
where City = '{$city2}' and 
`Date` > date_sub(now(), interval 10 day)
Run Code Online (Sandbox Code Playgroud)