dbo.AdicionarDias

Description

Properties

Name Value
ANSI Nulls ON

True

Quoted Identifier ON

True

Encrypted

False

Execute As
Null on Null Input

False

Schema Bound

False

Assembly

Parameters

3
Name Data Type Length Description
(Result) datetime 8
@dias int 4
@ignora_feriados bit 1

SQL Script

Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date, ,>
-- Description: <Description, ,>
-- =============================================
CREATE OR ALTER FUNCTION dbo.AdicionarDias 
(
 @dias       int,
 @ignora_feriados    bit = 0 
)
RETURNS DATETIME
AS
BEGIN
 -- Declare the return variable here
 DECLARE @f1 DATETIME
 DECLARE @added int = 0
 DECLARE @dia DATETIME = CONVERT(DATE,GETDATE(),121)
 DECLARE @feriado INT

 WHILE @added < @dias BEGIN

  IF(DATEPART(dw, @dia) > 1 AND DATEPART(dw, @dia) < 7) BEGIN
   IF @ignora_feriados=0 BEGIN

    SELECT @feriado = COUNT(*) FROM feriados WHERE CONVERT(DATE,fecha_feriado,121) = @dia

    IF (@feriado = 0) BEGIN
     SET @added = @added + 1
    END

   END ELSE BEGIN
    SET @added = @added + 1
   END
  END

  SET @dia = DATEADD(day, 1, @dia)
 END

 SET @f1 = DATEADD(SECOND, -1, @dia)

 -- Return the result of the function
 RETURN @F1

END
GO