2012-03-13 108 views

回答

5
select day(Date), count(*) 
from table 
where month(Date) = month(NOW()) and year(Date) = year(NOW()) 
group by day(Date) 

“where”子句选择当前月份。您可以使用count(whatever)count(distinct whatever)代替count(*) ......

+0

可能会更好地使用日期范围,因为'month(date)'和'year(dat e)'不会被编入索引。 – 2012-03-14 00:36:24

+0

像这样,你不会得到所有的日子,只有在数据库中的记录。有没有办法得到所有的日子,如果没有记录,得到0? – Alvaro 2013-01-16 11:43:33

+0

@Steve,实际上是一个很好的问题,在编码过程中我遇到过很多次......我想最好的解决方案是在表示层以外的SQL之外完成这个工作。 – TMS 2013-01-16 13:00:36

0

事情是这样的伪代码:

SELECT Day, COUNT(*) 
FROM XXX_Users 
GROUP BY "date extracted from datetime" as Day 

要提取的日期时间,你可以使用DATE函数日期:

SELECT Day, COUNT(*) 
FROM XXX_Users 
GROUP BY DATE(created) as Day 

或者你可以创建一个存储过程来包含所有的逻辑

相关问题