繁体   English   中英

筛选过去24小时的sql查询

[英]filter sql query for last 24 hours

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

尝试使用

time > DATE_SUB( NOW(), INTERVAL 24 HOUR)

而不是

time < DATE_SUB( NOW(), INTERVAL 24 HOUR)
$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小时。 不是+ 24小时。 DATE_SUB( NOW(), INTERVAL -24 HOUR)

或您需要将时间增加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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM