【问题标题】:MySQL datetime datatype get total number of visitors on a specific date rangeMySQL datetime 数据类型获取特定日期范围内的访问者总数
【发布时间】:2026-02-09 04:45:01
【问题描述】:

我的数据库表中有这样的条目:

在我正在创建的 Web 应用程序中,我让用户选择自定义日期范围,例如,一个用户可以选择从 2014-05-132014-05-15 的日期范围。我想使用 MySQL 获取每天的 nVisitors 总数。

如果您注意到2014-05-13 日期有时间,那么我想根据用户在我的网络应用中选择的日期范围来获取每天的 nVistor 总数。

一个示例输出是:

   Date    |   total
2014-05-13 |    146
2014-05-14 |    200
2014-05-15 |    150

鉴于总列是用户选择的每天 nVisitor 的结果。

请有任何想法。对你的帮助表示感谢!谢谢! :)

【问题讨论】:

    标签: php mysql


    【解决方案1】:

    试试下面:

    select DATE(date) as Date,count(idStoreVisitor) as Total from yourTable where Date(date) >= <User_inputDateRange1> 
    and Date(date)<= <User_inputDateRange2> group by Date(date)
    

    【讨论】:

      【解决方案2】:

      你可以试试这个:

      select date(`date`), sum(total) from yourtable 
      where date(`date`) between date('2014-05-13') and date('2014-05-15') 
      group by date(`date`)
      

      【讨论】:

      • 感谢您的回复:) 我认为这只会输出一个总和列,它不会得到每天的总和。在我的问题上查看我的示例输出:)
      • @Pinoy*er:- 更新我的答案以获得每天的结果!希望有帮助:)
      • 应该是select date(date), sum(total) from yourtable ... ?
      • @sri:- 确实,但我更强调范围部分,因为我认为这就是 OP 正在寻找的。但是我已经更新了我的答案。感谢您指出!
      【解决方案3】:

      您可以在查询中使用天间隔。

      select count(*) from <table> where last_login > (curdate() - interval 30 day) order by <date column> desc;
      

      【讨论】:

        【解决方案4】:

        感谢你们的回答,因为你们,我知道了如何解决这个问题。

        这是我的代码:

        $sql = "select DATE(date),sum(nVisitors) from 
          store_visitors where `date` between 
          '$startDate 00:00' and '$endDate 23:59' group by DATE(date)";
        

        我在日期范围的末尾添加了 00:00 和 23:59,因为我的列的数据类型是 datetime

        再次感谢! :)

        【讨论】:

        • 您需要在日期列上添加反引号,否则它将失败。谢谢:)