2012-07-23 28 views
0

如果可能的話,我希望在一個聲明中這樣做。如何按照與午夜不同的時間開始分組?

我原來的查詢是這樣的:

SELECT CAST(Date as DATE) as DayDate, SUM(Books) as LostBooks 
FROM RestartBooksView 
WHERE Name = 'AUHT167' and Date > (getdate() - 105) 
GROUP BY CAST(Date as DATE) 
ORDER BY CAST(Date as DATE) ASC 

與此查詢的問題是,我想求和由上午七時至7時的一天,而不是目前的12點至12點的一天得到體現。如何修改我的查詢以反映此更改?

+0

也許你也可以考慮更簡潔的標題爲你的問題。 – 2012-07-23 15:25:46

+0

也許還考慮更改您的用戶名 – 2012-07-23 15:30:31

回答

3

假設列「日期」實際上是一個日期時間。

SELECT CAST(Date as DATE) as DayDate, SUM(Books) as LostBooks 
FROM (select rbv.*, 
      cast(dateadd(h, -7, date) as date) as newdate 
     from RestartBooksView rbv 
    ) 
WHERE Name = 'AUHT167' and newdate > (getdate() - 105) 
GROUP BY newdate 
ORDER BY CAST(Date as DATE) ASC 

我也使用SQL Server日期函數,因爲您似乎正在使用該數據庫。

+0

謝謝!不得不修改它,但它的工作。 – tareqx3 2012-07-23 15:44:44