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:
One Comment
Consulta es recomendable utilizar Commit y Rollback en Procedimientos Almacenados