CREATE FUNCTION GetWorkDays
(
@dt_begin DATETIME , --计算的开始日期
@dt_end DATETIME --计算的结束日期
)
RETURNS INT
AS
BEGIN
DECLARE @workday INT ,
@i INT ,
@bz BIT ,
@dt DATETIME
IF @dt_begin > @dt_end
SELECT @bz = 1 ,
@dt = @dt_begin ,
@dt_begin = @dt_end ,
@dt_end = @dt
ELSE
SET @bz = 0
SELECT @i = DATEDIFF(Day, @dt_begin, @dt_end) + 1 ,
@workday = @i / 7 * 5 ,
@dt_begin = DATEADD(Day, @i / 7 * 7, @dt_begin)
WHILE @dt_begin <= @dt_end
BEGIN
SQL Server 计算两个日期间的工作日(排除周六和周日,不排除节假日)
这是一个SQL Server自定义函数,用于计算两个日期间的工作日数,排除周六和周日,但不考虑节假日。函数名为GetWorkDays,接受开始日期和结束日期作为参数,并返回整数结果。通过WHILE循环和条件判断,计算工作日并考虑日期范围的正负情况。
摘要由CSDN通过智能技术生成