查询查找插入日期范围内的总记录

问题描述:

我正在使用SQL Server 2008 R2,并试图查找insertdate按日期分组的日期范围之间插入的总记录。由于我的insertdate包含小时,分钟和秒,因此所有记录将分别以相同日期但不同时间进行计数。 我想保留在我的数据库中的时间信息,但只在查询中,我想按时间组合,省略时间。查询查找插入日期范围内的总记录

@Created Date    TotalRegistration 
2014-10-20 14:40:47.757    1 
2014-10-20 12:27:27.923    1 
2014-10-20 12:25:25.613    1 

应该

@Created Date    TotalRegistration 
2014-10-20       3 

这是我试过了。任何建议将非常感激。 谢谢

Select Insertdate, COUNT(Insertdate) as TotalDailyRegistration from Customer where Insertdate between '2014-10-01 00:00:00.001' and '2014-11-08 23:59:59.743' group by Insertdate 

更新:其次Lamak的建议,并制定了罚款。由于日期没有正确排序,因此我还通过CONVERT(日期,插入日期)在分组和完成后添加了排序。

+0

@Created日期有需要被丢弃时间戳组件。将字段转换为真正的“日期”字段,您应该能够正确分组。 – xQbert 2015-01-26 18:41:59

应该是更好的只是你列的日期部分组:

SELECT CONVERT(DATE,Insertdate) InsertDate, 
     COUNT(Insertdate) as TotalDailyRegistration 
FROM Customer 
WHERE Insertdate >= '20141001' 
AND InsertDate < '20141002' 
GROUP BY CONVERT(DATE,Insertdate) 
+0

谢谢你的帮助。 – user2908229 2015-01-26 19:32:40

就试试这个:

create table #test(createdDate datetime,totalRegistration int) 
insert into #test values('2014-10-20 14:40:47.757',1) 
insert into #test values('2014-10-20 12:27:27.923',1) 
insert into #test values(' 2014-10-20 12:25:25.613',1) 
select *From test 
Select convert(nvarchar(10),createdDate,103), sum(totalRegistration) as TotalDailyRegistration