Php计数mysql与日期时间和组


Php count mysql with datetime and group

我有一个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;