2009-10-27 59 views
5

我有一个包含查看/点击记录的表。时间存储在unix时间戳中,我需要能够在特定的月份/日期(基于时间戳)中抽出所有这些时间戳,但更重要的是,我不知道如何执行的部分是将它们分组按小时计算。我需要能够在单个查询中完成此操作,而不是在每个小时循环。按小时总结选择行组

数据库是MySQL,语言是PHP。

回答

5
select hour(somedate), count(*) from yourtable group by hour(somedate) 

如果你需要的所有三:

select month(somedate), day(somedate), hour(somedate), count(*) from yourtable group by month(somedate), day(somedate), hour(somedate) 
+0

当我运行以下查询: SELECT *,HOUR(TIMESTAMP)AS HOUR FROM ad_view LIMIT 0,30 它返回838作为小时,它应该是当天的小时数。 – Webnet 2009-10-27 20:04:42

+0

对不起,时间戳记到当天(0-24)的小时数。 – Webnet 2009-10-27 20:05:39

+0

你确定这确实是一个时间戳吗?它是存储在int列中的时间戳整数吗? – 2009-10-27 20:28:53