计算工作日的函数
巡山小妖精
938次浏览
2020年08月01日 14:22
最佳经验
本文由作者推荐
分母是什么-霞光万道
GO
/****** Object: UserDefinedFunction [dbo].[fn_WorkDay] Script Date: 02/20/2013 17:32:07 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER FUNCTION [dbo].[fn_WorkDay]
(
@dt_begin DATETIME , --计算的开始日期
@dt_end DATETIME --计算的结束日期
)
RETURNS INT
AS
BEGIN
DECLARE @workday INT
IF @dt_begin >= @dt_end
SET @workday = 0
ELSE
SET @workday = 0
WHILE @dt_begin+1 < @dt_end
BEGIN tt
SELECT @workday = ( CASE WHEN ( ( @@DATEFIRST
+ DATEPART(Weekday,
@dt_begin) - 1 )
% 7 BETWEEN 1
AND 5 )
THEN @workday + 1
ELSE @workday
END ) tt
SET @dt_begin = @dt_begin + 1
END
RETURN @workday
END