过滤24小时过滤sql查询

时间:2011-12-22 11:54:29

标签: php mysql

我正在尝试过滤过去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

4 个答案:

答案 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