簡體   English   中英

SQL Server - 按小時查詢,多天查詢

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM