【发布时间】:2013-08-26 19:50:09
【问题描述】:
我有下表:
CREATE TABLE `visitors_table` (
`ID` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
`visitor_ip` VARCHAR(32) NULL,
`visitor_browser` VARCHAR(255) NULL,
`visitor_hour` SMALLINT(2) NOT NULL DEFAULT '00',
`visitor_minute` SMALLINT(2) NOT NULL DEFAULT '00',
`visitor_date` DATE NOT NULL,
`visitor_day` SMALLINT(2) NOT NULL,
`visitor_month` SMALLINT(2) NOT NULL,
`visitor_year` SMALLINT(4) NOT NULL,
`visitor_page` VARCHAR(255) NULL
);
以下查询每天获取访问者:
"SELECT visitor_date FROM visitors_table WHERE visitor_date = CURDATE()";
现在我想每小时输出一次数据。看这个例子:
Day Year Hours Clicks
July 4, 2011 00:00:00 4
July 4, 2011 01:00:00 12
July 4, 2011 02:00:00 75
July 4, 2011 03:00:00 27
等等……
有人可以帮我吗?一天的访问者总数的输出我不清楚!
下面的查询只有这个结果:
SELECT visitor_date, count(*) FROM visitors_table WHERE visitor_date = CURDATE() GROUP BY visitor_hour
visitor_date count(*)
2013-08-31 4
2013-08-31 7
我需要像上面写的那样按小时得到结果! 我的错误在哪里,或者我如何用 php 显示它?
【问题讨论】:
-
除了整理查询和数据库表之外,您是否尝试过其他任何方法?
-
您是否只需要扩展您已经拥有的日期,以搜索小时是什么(即获取现在是什么小时以及该小时内显示的任何内容?)
-
为什么要将所有这些时间值存储为单独的字段?使用单个日期时间字段会更有效。它还将大大简化您的查询:
WHERE DAY(datetimefield)='2013-08-23' GROUP BY HOUR(datetimefield)