我正在使用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和它的完美顺序。
答案 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