Add only working date to a function, skip saturdays and sundays.
CREATE FUNCTION dbo.AddWorkingDays(@Data AS DATE, @Giorni AS INT) RETURNS DATETIME AS BEGIN DECLARE @DataFinale as DATETIME, @contatore as int SET @contatore=0 --add one day at the time until we reach the number we want WHILE @contatore < @Giorni BEGIN SET @Data=DATEADD(d,1,@Data) --if saturday or sunday add another day without update the counter IF DATEPART(dw,@Data)= 7 SET @Data=DATEADD(d,1,@Data) IF DATEPART(dw,@Data)= 1 SET @Data=DATEADD(d,1,@Data) SET @contatore=@contatore+1 END SET @DataFinale = @Data RETURN @DataFinale END GO
You can use it instead the DATEADD to add only working days:
SELECT Db.dbo.AddWorkingDays(GETDATE(), 26)
To skip also holiday outside saturday and sundays, you have to add a custom table with this dates and include it in the function.