计算两个日期之前的工作天数,可通过编写如下函数实现:
createFUNCTION [dbo].[f_workday](
@dt_begin datetime, --计算的开始日期
@dt_end datetime --计算的结束日期
)RETURNS int
AS
BEGIN
DECLARE @i int, @j int,@s datetime
set @i = 0
set @j = 0
set @s=@dt_begin
while @s <= @dt_end
begin
if datename(weekday,@s) = '星期六'
begin
set @j= @j+1
end
else if datename(weekday,@s) = '星期日'
begin
set @j= @j+1
end
else
begin
set @i = @i+1
end
set @s=@s+1
end
return @i
END
例如计算'2013-07-27'与'2013-07-29'之间的工作天数,执行如下语句即可:
select dbo.f_workday('2013-07-27','2013-07-29')