none
Fecha de vencimiento Add 15 dias habiles RRS feed

  • Pregunta

  • tengo el siguiente código que encontré en un foto como este, pero este esta basado en un intervalo de fechas, y lo que yo necesito es.. con una fecha inicial mas 15 días hábiles me de la fecha de vencimiento. 

    Como lo hago?

    CREATE FUNCTION dbo.DiasLaborales 
    ( @FechaInicial datetime, 
    @FechaFinal datetime ) 
    RETURNS INT 
    AS 
    BEGIN 
    
    DECLARE @varfecha DATETIME 
    DECLARE @diaslaborales int 
    
    SET @varfecha = @FechaInicial
    SET @diaslaborales = 0 
    
    WHILE (@varfecha<>(@FechaFinal + 1)) 
    BEGIN 
    IF (DATEPART(dw,@varfecha) NOT IN (7,1)) 
    BEGIN	
    SET @diaslaborales = @diaslaborales +1 
    END 
    SET @varfecha = @varfecha + 1 
    END 
    RETURN @diaslaborales 
    END 


    JorgeLeonardoDC

    lunes, 12 de febrero de 2018 19:36

Respuestas

  • Hola JorgeLeonardoDC:

    Creo que deberías de especificar un poco mejor para poder ayudarte.

    ¿Qué significan para ti días hábiles? (Por ejemplo la exclusión de los domingos, o, tambien los festivos, y si son estos, en base a que calendario....)

    ¿Qué significa la fecha de vencimiento?...

    Fecha inicial + 15 y si hay dos domingos, por ejemplo +17

    Un saludo

    lunes, 12 de febrero de 2018 20:07
  • DECLARE @FechaInicio DATE set @FechaInicio ='02/02/2018'

    DECLARE @FechaFin DATE set @FechaFin = '10/02/2018'

    DECLARE @Fechas Table (Fecha DATE) DECLARE @Fecha DATE SET @Fecha= DATEADD(d, 14 - DatePart(dw, @FechaInicio), @FechaInicio) INSERT INTO @Fechas VALUES (@FechaInicio) WHILE(@Fecha <=@FechaFin) BEGIN INSERT INTO @Fechas VALUES (@Fecha) SET @Fecha = DATEADD(d, 14, @Fecha) END SELECT Row_Number() over(order by Fecha), Fecha FROM @Fechas


    lunes, 12 de febrero de 2018 23:50

Todas las respuestas

  • Hola JorgeLeonardoDC:

    Creo que deberías de especificar un poco mejor para poder ayudarte.

    ¿Qué significan para ti días hábiles? (Por ejemplo la exclusión de los domingos, o, tambien los festivos, y si son estos, en base a que calendario....)

    ¿Qué significa la fecha de vencimiento?...

    Fecha inicial + 15 y si hay dos domingos, por ejemplo +17

    Un saludo

    lunes, 12 de febrero de 2018 20:07
  • DECLARE @FechaInicio DATE set @FechaInicio ='02/02/2018'

    DECLARE @FechaFin DATE set @FechaFin = '10/02/2018'

    DECLARE @Fechas Table (Fecha DATE) DECLARE @Fecha DATE SET @Fecha= DATEADD(d, 14 - DatePart(dw, @FechaInicio), @FechaInicio) INSERT INTO @Fechas VALUES (@FechaInicio) WHILE(@Fecha <=@FechaFin) BEGIN INSERT INTO @Fechas VALUES (@Fecha) SET @Fecha = DATEADD(d, 14, @Fecha) END SELECT Row_Number() over(order by Fecha), Fecha FROM @Fechas


    lunes, 12 de febrero de 2018 23:50
  • DECLARE @FechaInicio DATE set @FechaInicio ='02/02/2018'

    DECLARE @FechaFin DATE set @FechaFin = '10/02/2018'

    DECLARE @Fechas Table (Fecha DATE) DECLARE @Fecha DATE SET @Fecha= DATEADD(d, 14 - DatePart(dw, @FechaInicio), @FechaInicio) INSERT INTO @Fechas VALUES (@FechaInicio) WHILE(@Fecha <=@FechaFin) BEGIN INSERT INTO @Fechas VALUES (@Fecha) SET @Fecha = DATEADD(d, 14, @Fecha) END SELECT Row_Number() over(order by Fecha), Fecha FROM @Fechas


    Es muy bueno como lo haces, pero supongo que la persona no tiene la fechafin, entonces puede ser que haya que calcularla.

    DBA SQL Server Santiago/Chile

    martes, 13 de febrero de 2018 15:32