1
我有一个注册表,并有一个日期时间列。
我想在显示当前月份的每日注册数的网页上显示条形图。
我该如何做一个查询?即返回每天(当月)字段的结果集,当天的注册总数为
我有一个注册表,并有一个日期时间列。
我想在显示当前月份的每日注册数的网页上显示条形图。
我该如何做一个查询?即返回每天(当月)字段的结果集,当天的注册总数为
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(*)
......
事情是这样的伪代码:
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
或者你可以创建一个存储过程来包含所有的逻辑
可能会更好地使用日期范围,因为'month(date)'和'year(dat e)'不会被编入索引。 – 2012-03-14 00:36:24
像这样,你不会得到所有的日子,只有在数据库中的记录。有没有办法得到所有的日子,如果没有记录,得到0? – Alvaro 2013-01-16 11:43:33
@Steve,实际上是一个很好的问题,在编码过程中我遇到过很多次......我想最好的解决方案是在表示层以外的SQL之外完成这个工作。 – TMS 2013-01-16 13:00:36