我有一个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和that。任何帮助都将不胜感激。
$query = "SELECT COUNT(id) FROM `unique_visitors_user` WHERE DATE(date) BETWEEN '2013-02-08' AND '2013-02-10' ";
这个应该按天计算所有访问
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)
试试这个:
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;