2015-01-26 174 views
0

我正在使用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

回答

4

應該是更好的只是你列的日期部分組:

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

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