我正在编写代码以获取不包括周末(周六和周日)的净工作日。我需要这些数据在几天内。我已经为它编写了以下 2 个函数
第一个函数返回日期的开始时间
ALTER FUNCTION day_start
(@dd as datetime)
returns datetime
begin
return cast(floor(cast(@dd as float)) as datetime)
end
第二个做实际工作
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)
请帮忙。