gpt4 book ai didi

php - 按小时对数据库数据进行分组

转载 作者:行者123 更新时间:2023-11-29 12:16:52 24 4
gpt4 key购买 nike

我有一个 MySQL 表,用于存储访问我的网站的每个用户的数据。我使用 UNIX 时间戳来指示访问时间。

我想获取时间 x 到时间 y 之间每小时的访问次数。

这是我能想到的:

  1. 使用 MySQL 分组:

此方法的问题在于,它没有解决没有访问的时间,并且我需要 x 和 y 之间每个小时的数据,而不仅仅是有访问的时间。

// the timestamp for 03/16/2015
$x = 1426489200;
// the timestamp for 04/16/2015
$y = 1429167600;
//Getting the nearest hour
$start = floor($x / 3600) * 3600;
$end = ceil($y / 3600) * 3600;
$Db->query("SELECT ROUND(time/3600) AS timekey, COUNT(*) FROM visits WHERE time>='$start' AND time<='$end' GROUP BY timekey");
  • 使用 PHP
  • 此方法应该可以正常工作,但我担心性能,特别是如果 x 和 y 相隔 1 个月。

    // the timestamp for 03/16/2015
    $x = 1426489200;
    // the timestamp for 04/16/2015
    $y = 1429167600;
    //Getting the nearest hour
    $start = floor($x / 3600) * 3600;
    $end = ceil($y / 3600) * 3600;
    // the number of hours between start and end
    $hourCount = ($end - $start) / 3600;
    for ($i = 0; $i < $hourCount; $i++) {
    $hourStart = $start + $i * 3600;
    $hourEnd = $hourStart + 3599;
    $query = $Db->query("SELECT time FROM visits WHERE time>='$hourStart' AND time<='$hourEnd'");
    $visitCount = $query->num_rows;
    }

    最佳答案

    这看起来像您想要完成的任务:

    SELECT DAY(time), HOUR(time), * FROM visits
    GROUP BY DAY(time), HOUR(time)

    使用this链接,我相信您会找到解决您问题的方法!(只是不要使用 PHP 方法,只需一个查询就足够了。)

    关于php - 按小时对数据库数据进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29669083/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com