Procedure que retorna o intervalo entre duas datas

Procedure que retorna o intervalo entre duas datas

Olá pessoal…

Hoje vou mostrar uma procedure que desenvolvi para SQL Server que retorna o intervalo entre duas datas.

Para utilizar essa procedure, basta executá-la e passar as duas datas na frente, a inicial e a final, por exemplo:

exec sp_X_Datas '20160201', '20160401'

Abaixo um print de exemplo da execução.

Execução da Procedure
Execução da Procedure

Abaixo o código completo da procedure.

--Exclui procedure
IF OBJECT_ID('dbo.sp_X_Datas', 'P') IS NOT NULL
    DROP PROCEDURE [dbo].[sp_X_Datas]
GO

--Cria a procedure
CREATE PROCEDURE sp_X_Datas (
  @DataIni Varchar( 08 ),
  @DataFin VARCHAR( 08 )
)
AS BEGIN
	DECLARE @DtAuxIni DATETIME
	DECLARE @DtAuxAtu DATETIME
	DECLARE @DtAuxFin DATETIME
	DECLARE @TabDados TABLE (DATA_AUX DATETIME, DATA_CHAR VARCHAR(10))

	--Converte as datas
	SET @DtAuxIni = CONVERT(Datetime, @DataIni, 120)
	SET @DtAuxFin = CONVERT(Datetime, @DataFin, 120)
	SET @DtAuxAtu = @DtAuxIni

	--Enquanto a data Atual for menor que a data Final
	WHILE (@DtAuxAtu <= @DtAuxFin) BEGIN
		INSERT INTO @TabDados VALUES (@DtAuxAtu, REPLACE(LEFT(CONVERT(VARCHAR, @DtAuxAtu, 120), 10), '-', ''))
		Set @DtAuxAtu = DATEADD(Day, 1, @DtAuxAtu)
	END

	--Seleciona todos os dados da tabela
	SELECT * FROM @TabDados
END
GO

Bom pessoal, por hoje é só.
Abraços e até a próxima.

About Dan_Atilio

Analista e desenvolvedor de sistemas. Técnico em Informática pelo CTI da Unesp. Graduado em Banco de Dados pela Fatec Bauru. Entusiasta de soluções Open Source e blogueiro nas horas vagas. Autor do projeto Terminal de Informação, onde são postados tutoriais e notícias envolvendo o mundo da tecnologia.

Deixe uma resposta

%d blogueiros gostam disto: