我需要計算日期差異的平均值,排除列中各行的週末數。查詢給了我錯誤的結果。但是,當我自己計算它時,我會得到不同的結果。查詢是一樣的東西 -要計算在sql服務器列中日期差異的平均值
select zone, avg(datediff(dd,startdate,enddate)-datediff((ww,startdate,enddate)*2)) from table where startdate >'1/1/2013' group by zone
我沒有得到正確的結果。請指導我。
我需要計算日期差異的平均值,排除列中各行的週末數。查詢給了我錯誤的結果。但是,當我自己計算它時,我會得到不同的結果。查詢是一樣的東西 -要計算在sql服務器列中日期差異的平均值
select zone, avg(datediff(dd,startdate,enddate)-datediff((ww,startdate,enddate)*2)) from table where startdate >'1/1/2013' group by zone
我沒有得到正確的結果。請指導我。
試試這個代碼:
select zone , avg(NumOfDays) from
(select zone, (datediff(dd,startdate,enddate)-datediff((ww,startdate,enddate)*2)) as NumOfDays from table where startdate >'1/1/2013')
group by zone
計算方法與OP相同,只是語法不同。變化會帶來什麼? –
嘿,謝謝,還有很多很抱歉的遲到回覆。我的工作很忙 – user1416631
我不知道你的數據的模樣和你挑戰究竟是什麼,但我覺得你的問題是「排除週末」?也許這對你有幫助?
首先創建一個計算月經之間的每個週末一天後對其進行篩選的功能:
CREATE FUNCTION fnc_GetWeekendDays(@dFrom DATETIME, @dTo DATETIME)
RETURNS INT AS
BEGIN
Declare @weekendDays int
Set @weekendDays = 0
While @dFrom <= @dTo
Begin
If ((datepart(dw, @dFrom) = 1) OR (datepart(dw, @dFrom) = 7))
Set @weekendDays = @weekendDays + 1
Set @dFrom = DateAdd(d, 1, @dFrom)
End
Return (@weekendDays)
END
在此之後,寫你的查詢:
Select
zone,
avg(cast((datediff(SECOND,StartTime,EndTime) - dbo.fnc_GetWeekendDays(StartTime, EndTime)*86400) as float))
from
(
Select zone,
CASE
WHEN (datepart(dw, startdate) = 1) THEN DATEADD(Day, DATEDIFF(Day, 0, startdate), 1)
WHEN (datepart(dw, startdate) = 7) THEN DATEADD(Day, DATEDIFF(Day, 0, startdate), 2)
ELSE startdate END as StartTime,
CASE
WHEN (datepart(dw, enddate) = 1) THEN DATEADD(Day, DATEDIFF(Day, 0, enddate), -2)
WHEN (datepart(dw, enddate) = 7) THEN DATEADD(Day, DATEDIFF(Day, 0, enddate), -1)
ELSE enddateEND as EndTime
from table
) subquery
where StartTime < EndTime and startdate >'2013-01-01 00:00:00.000'
Group by zone
你會得到你的平均時間(秒) ,如果你想另一種格式,你必須計算它...
這將幫助你 - http://stackoverflow.com/questions/7497418/sql-query-to-find-average-of-difference-between-日期 – MusicLovingIndianGirl
嗨,感謝您的回覆,但是,我有2列。如此迷茫。請指導我 – user1416631
如何http://www.sqlservercentral.com/Forums/Topic1262284-392-1.aspx – MusicLovingIndianGirl