查询以查找在一系列日期中插入的总记录

时间:2015-01-26 18:40:25

标签: sql-server-2008

我正在使用SQL Server 2008 R2并尝试查找在按插入日期分组的日期范围之间插入的总记录。由于我的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(DATE,Insertdate)之后添加了group by和它的完美顺序。

2 个答案:

答案 0 :(得分:4)

最好只按列的日期部分进行分组:

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

答案 1 :(得分:0)

试试这个:

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