2012-05-17 70 views
0

可能重复:
SQL Count records within a month using a unix timestampmysql:如何按日期分组?

我有这样

 
+--------+------------+   
| id | datetime | 
+--------+------------+ 
|  1 | 1313405609 | 
|  1 | 1313144410 | 
|  2 | 1313405550 | 
|  1 | 1313405549 | 
+--------+------------+ 

日期时间的表是PHP的UNIX时间,我想组行日期(如20120517)并统计每个组的项目。由于1313405609,1313405550和1313405549的日期是20110815,结果我要的是:

 
+--------+------------+------------+ 
|  id | datetime | Count | 
+--------+------------+------------+ 
|  1 | 1313405609 |  2  | 
|  1 | 1313144410 |  1  | 
|  2 | 1313405550 |  1  | 
+--------+------------+------------+ 

我怎么可以用SQL做到这一点?

+1

这可能为你工作http://stackoverflow.com/questions/6160990/sql-count-records-within-a-month-using-a-unix -timestamp –

+0

谢谢,这就是我想要的答案 – NOrder

回答

1

使用FROM_UNIXTIME将unix时间戳转换为日期时间。然后使用DATE只得到的日期部分:

select 
    id, 
    min(datetime) as datetime, 
    count(*) as Count 
from 
    YourTable t 
group by 
    id, 
    date(from_unixtime(datetime)) 
+0

是的,我需要按ID分组,谢谢你的回答。 – NOrder