有没有一种方法可以计算出将来或过去n
个工作日内的日期而无需进行迭代?
例如:给定1.1.1985,哪个日期是1000个工作日?
编辑:就我而言,工作日只是星期一至星期五,不考虑假期。
这可行,但是太慢了:
create function slow(@i int, @date date)
returns date
as
begin
while (@i != 0)
begin
select @date = dateadd(dd, sign( @i), @date)
if (datepart(dw, @date) = 1 or datepart(dw, @date) = 7)
continue
select @i = @i - sign(@i)
end
return @date
end