3 messaggi dal 03 maggio 2004
Salve ragazzi
Avete una Funzione di Sql Server che passata una data come parametro e un intero aggiunge i giorni lavorativi alla data passata e tiene anche conto dei giorni festivi italiani?


Questa sotto la funzione SQL che però non tiene conto dei giorni festivi italiani...


CREATE FUNCTION add_workdays2 (@start_date datetime, @workdaystoadd int)
RETURNS datetime
AS
BEGIN
declare @start_d int, @weeks int, @days int, @outdays varchar(200)
select @start_d = (DATEPART(dw, @start_date) - 1)
select @weeks = @workdaystoadd / 5
select @days = @workdaystoadd % 5
IF (@days = 0)
BEGIN
 IF @start_d > 5 
 BEGIN
 SET @days = (8 - @start_d) -- sat or sun move to mon
 END
END
ELSE
IF (@days > 0)
BEGIN
 SELECT @days = CASE 
 WHEN @start_d = 6 THEN @days + 1 -- sat move to sun
 WHEN @start_d + @days > 5 and @start_d < 6 THEN @days + 2
 ELSE @days
END
END
ELSE
IF (@days < 0)
BEGIN
 SELECT @days = CASE 
 WHEN @start_d = 7 THEN @days - 1
 WHEN @start_d + @days < 1 and @start_d < 6 THEN @days - 2
 ELSE @days
END
END
RETURN cast(@start_date as datetime) + (@weeks * 7) + @days
END 


Grazie
M@X

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.