Bucle entre fechas en SQL Server

El proceso espera dos parámetros de fecha, una fecha de inicio y una fecha final. A continuación, el proceso asignará una tercera variable, siete días después de la fecha de inicio. A continuación, el proceso ejecutará el código dado. El paso final dentro del bucle incrementa la fecha de inicio y la fecha de finalización por siete días. El proceso se bucle hasta que la fecha de inicio es mayor que la fecha final total.

declare @StartDate datetime
declare @StartDate      date
declare @EndDate        date
declare @OverallEndDate	date
declare @PrintStart     varchar(10)
declare @PrintEnd       varchar(10)

--	Define la fecha de inicio 
--	Define la fecha de finalización 
--	siete días después de la fecha de inicio
set @StartDate = '2018-01-01'
set @EndDate = dateadd( dd,7 ,@startDate)

--	Define la fecha final general
set @OverallEndDate = '2018-12-31'

--	Bucle mientras que la fecha de inicio es menor que la fecha final general
while(@OverallEndDate > @StartDate)
begin
        --     Imprima la semana en proceso
        set @PrintStart = CONVERT( varchar(10),@StartDate, 120)
        set @PrintEnd = CONVERT( varchar(10),@EndDate, 120)
        raiserror('Trabajando desde %s hasta %s' ,10, 1,@PrintStart ,@PrintEnd)

        --     El trabajo va aqui

        --     Increment the weeks
        set @StartDate = @EndDate
        set @EndDate = dateadd( dd,7 ,@startDate)

end
raiserror('Completo!' ,10, 1)

El ejemplo aparece debajo:

Sigue este projecto en GitHub:

One Comment