週末(土曜日と日曜日)を除く正味営業日を取得するコードに取り組んでいます。このデータは数日で必要です。私はそれのために次の2つの関数を書きました
最初の関数は日付の開始時刻を返します
ALTER FUNCTION day_start
(@dd as datetime)
returns datetime
begin
return cast(floor(cast(@dd as float)) as datetime)
end
2番目のものは実際の作業を行います
alter function networkingdays_hours (@startdate as datetime, @enddate as datetime)
returns float
begin
return
(
SELECT
cast(
(DATEDIFF(dd,@StartDate, @EndDate))
-(DATEDIFF(wk,@StartDate, @EndDate)*2)
-(CASE WHEN DATENAME(dw, @StartDate) ='Sunday'
THEN 1
ELSE 0
END)
-(CASE WHEN DATENAME(dw, @EndDate) ='Saturday'
THEN 1
ELSE 0
END)
+(@EndDate - dbo.day_start(@EndDate))
-(@startdate - dbo.day_start(@startdate))
as float))
END
開始時刻の例 - 2012 年 8 月 31 日午前 9:22:00、終了時刻 - 2012 年 9 月 1 日午前 7:14:00、期待される結果 - 0.911111111、コード出力 - (-0.08888888)
助けてください。