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
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