我正在尝试过滤过去24小时内的一些结果。我在时间栏中有时间戳并想出了这个,但它在过去24小时内没有过滤它显示的所有内容。
$last_day = "SELECT site_id, time, COUNT(*) AS site_num FROM url_visits WHERE time < DATE_SUB( NOW(), INTERVAL 24 HOUR) GROUP BY site_id ORDER by COUNT(*) DESC";
有谁知道如何让这个查询在过去24小时内有效?它适用于分组等,而不是过去24小时。感谢。
编辑:
这是最终工作的结果,也是我发现的唯一解决方案,以防万一有人遇到这种情况并希望做同样的事情。
SELECT site_id, time, COUNT(*) AS site_num FROM url_visits WHERE time > UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 1 DAY)) GROUP BY site_id ORDER by COUNT(*) DESC
答案 0 :(得分:1)
尝试使用
time > DATE_SUB( NOW(), INTERVAL 24 HOUR)
而不是
time < DATE_SUB( NOW(), INTERVAL 24 HOUR)
答案 1 :(得分:0)
$last_day = "SELECT site_id, time, COUNT(*) AS site_num FROM url_visits WHERE time > DATE_SUB( NOW(), INTERVAL 24 HOUR) GROUP BY site_id ORDER by COUNT(*) DESC";
更改了比较
答案 2 :(得分:0)
把 - 在24的前面。你想要时间&gt;现在 - 24小时。不是+ 24小时。
DATE_SUB( NOW(), INTERVAL -24 HOUR)
。
或者你需要在你的时间加上24小时然后现在说&lt;时间+ 24小时
答案 3 :(得分:0)
这是我最终使用的,也是唯一有用的东西。希望这有助于其他人。
SELECT site_id, time, COUNT(*) AS site_num FROM url_visits WHERE time > UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 1 DAY)) GROUP BY site_id ORDER by COUNT(*) DESC