25 lines
853 B
Transact-SQL
25 lines
853 B
Transact-SQL
CREATE FUNCTION dbo.VerificaFestivo
|
|
(
|
|
@DataInput VARCHAR(8)
|
|
)
|
|
RETURNS VARCHAR(8)
|
|
AS
|
|
BEGIN
|
|
DECLARE @DataFeriale DATE
|
|
-- Converte la stringa di input nel formato data
|
|
SET @DataInput = CONVERT(VARCHAR, @DataInput, 112)
|
|
SET @DataFeriale = CAST(@DataInput AS DATE)
|
|
-- Verifica se la data è sabato o domenica
|
|
IF DATEPART(WEEKDAY, @DataFeriale) = 7 -- 7 = Sabato
|
|
BEGIN
|
|
-- Se è sabato, restituisci la giornata precedente
|
|
SET @DataFeriale = DATEADD(DAY, -1, @DataFeriale)
|
|
END
|
|
ELSE IF DATEPART(WEEKDAY, @DataFeriale) = 1 -- 1 = Domenica
|
|
BEGIN
|
|
-- Se è domenica, restituisci la giornata successiva
|
|
SET @DataFeriale = DATEADD(DAY, 1, @DataFeriale)
|
|
END
|
|
-- Formatta la data nel formato desiderato e restituisci come stringa
|
|
RETURN CONVERT(VARCHAR(8), @DataFeriale, 112)
|
|
END; |