1

我想根据喜欢从数据库中选择过去 24 小时内发布的 10 个最受欢迎的帖子。在每个帖子的数据库中,我使用 post_date 列中的 date("Ymd H:i:s") 存储帖子发布的时间。

我需要这样的东西:

$most_popular = mysqli_query($mysqli_connect, "SELECT * FROM posts WHERE (time() - post_date) < 86400 ORDER BY likes DESC LIMIT 10");
4

4 回答 4

2

您可以执行以下操作:

SELECT * 
FROM posts 
WHERE post_date > DATE_SUB(NOW(), INTERVAL 1 DAY) 
ORDER BY likes DESC 
LIMIT 10
于 2013-03-15T22:20:47.580 回答
2

我只想post_date与 24 小时前比较:

$last_24_hours = date("Y-m-d H:i:s", strtotime("-24 Hours"));
$query = sprintf("SELECT * 
                    FROM posts 
                   WHERE post_date > '%s'
                ORDER BY likes DESC
                   LIMIT 10", $last_24_hours);
$most_popular = mysqli_query($mysqli_connect, $query);
于 2013-03-15T22:22:25.533 回答
0
SELECT *
FROM posts
WHERE post_date >= (now() - INTERVAL 1 DAY)
ORDER BY ...
etc...
于 2013-03-15T22:21:01.043 回答
0

您的问题是:“是否可以在 mysqli_query 中将日期(“Ymd H:i:s”)与 time() 进行比较?

答案是肯定的:

SELECT TIME('2003-12-31 01:02:03'); // returns '01:02:03'

注意:如果这是您的问题,这不能处理很多日期。

于 2013-03-15T22:22:54.327 回答