[英]SQL Server - query by hour, over multiple days
我希望使用datepart運行SQL查詢以將數據拆分為每小時增量,然后使該查詢運行多天。 目前我只是將日期增加一天,然后運行多個查詢。 我想知道是否有辦法將這個全部合並到一個查詢中,該查詢將為整個日期范圍提供輸出。
select datepart(hour, datetime), sum(calls)
from dbo.gateway_concurrent_calls
where datetime between 'MM/DD/YY' and 'MM/DD+1/YY'
group by datepart(hour, datetime)
這將此作為輸出。
0 1220
1 569
2 391
3 313
4 161
5 68
6 42
7 24
8 19
9 18
10 23
11 45
12 90
13 311
14 566
15 668
16 688
17 735
18 718
19 729
20 701
21 699
22 683
23 570
按日期和小時分組:
select convert(date, datetime), datepart(hour, datetime), sum(calls)
from dbo.gateway_concurrent_calls
where datetime between 'MM/DD/YY' and 'MM/DD+1/YY'
group by convert(date, datetime), datepart(hour, datetime)
此查詢將datetime
列舍入到最近的小時,同時保留日期部分,給出您尋求的結果,我相信:
select DATEADD(hour,DATEDIFF(hour,0,datetime),0), sum(calls)
from dbo.gateway_concurrent_calls
where datetime between @StartDate and @EndDate
group by DATEADD(hour,DATEDIFF(hour,0,datetime),0)
請注意,我假設開始日期和結束日期將作為變量/參數提供 - 如果您要繼續使用文字字符串,請嘗試使用格式YYYYMMDD
(日期),例如今天是20111129
- 此格式為跨SQL Server的區域設置明確無誤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.