0

我有一个存储访问者的 mysql 数据库。

id        ip             date
--     -----------    ------------------   
1      192.168.0.1    2013-02-08 12:12:04
2      192.168.0.1    2013-02-08 14:30:00
3      192.168.0.1    2013-02-09 16:43:46
4      192.168.0.1    2013-02-10 08:35:02

这是我正在使用的简化版本,但概念是相同的。我希望能够获取访问者的数量并按时间间隔在图表中显示它们。我使用以下数组设计来填充图表,其中 0、1、2、3 是 x 轴,24、74、26、51 是 y 轴。

 [[0, 24], [1, 74], [2, 26], [3, 52]]

例如,我曾尝试使用来自堆栈问题的查询,我无法让它与 Group by 一起使用。任何帮助将不胜感激。

 $query = "SELECT COUNT(id) FROM  `unique_visitors_user` WHERE DATE(date) BETWEEN '2013-02-08' AND '2013-02-10' ";
4

2 回答 2

1

试试这个:

SELECT 
    DATE_FORMAT(date, '%Y-%m-%d') Date1, COUNT(*) AS Visitors
FROM
    unique_visitors_user
WHERE
    date BETWEEN STR_TO_DATE('%Y-%m-%d', '2013-02-08') AND STR_TO_DATE('%Y-%m-%d', '2013-02-10')
GROUP BY Date1;
于 2013-02-10T21:10:41.203 回答
1

这个应该按天计算所有访问

SELECT COUNT(id)
FROM `unique_visitors_user`
WHERE date >= "2013-01-01" 
AND date < DATE_ADD("2013-01-01", INTERVAL 1 DAY)
GROUP BY DAY(date)
于 2013-02-10T21:37:30.440 回答