Sql 获取基于日期的用户计数

Sql 获取基于日期的用户计数,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,我有一个简单的表,我存储用户名,用户名,电子邮件,注册日期 RegistrationDate是DateTime数据类型 当我想得到每个日期的用户数时,每行得到1,因为每行都有一个唯一的日期时间戳 SELECT DATEPART(dd, RegistrationDate) AS DD, COUNT(userID) FROM USER_Table GROUP BY RegistrationDate order by RegistrationDate DESC 如果我注册了100个用户,那

我有一个简单的表,我存储用户名,用户名,电子邮件,注册日期

RegistrationDate
DateTime
数据类型

当我想得到每个日期的用户数时,每行得到1,因为每行都有一个唯一的日期时间戳

SELECT DATEPART(dd, RegistrationDate) AS DD, COUNT(userID)   
FROM USER_Table 
GROUP BY RegistrationDate 
order by RegistrationDate DESC
如果我注册了100个用户,那么上面的查询将每100行获取一个


我想得到基于日期的计数。我尝试了不同的方法,但似乎没有任何效果。

您需要按
CAST(注册日期为日期)分组。


您需要按
CAST分组(注册日期为日期)

试试这个:

SELECT Cast(RegistrationDate AS DATE),
       Count(userID)
FROM   User_Table
GROUP  BY Cast(RegistrationDate AS DATE)
ORDER  BY Cast(RegistrationDate AS DATE)DESC 
试试这个:

SELECT Cast(RegistrationDate AS DATE),
       Count(userID)
FROM   User_Table
GROUP  BY Cast(RegistrationDate AS DATE)
ORDER  BY Cast(RegistrationDate AS DATE)DESC 

这将按天分组,而不是按日期分组。因此,10月1日将与11月1日、12月1日等进行分组,但仍然不起作用。您还需要按列强制转换订单,这将按天分组,而不是按日期分组。因此,10月1日将与11月1日、12月1日等进行分组,但仍然不起作用。您还需要按列强制转换订单
SELECT cast(RegistrationDate as Date) AS DD, COUNT(userID)   
FROM USER_Table 
GROUP BY cast(RegistrationDate as Date)
order by cast(RegistrationDate as Date) DESC