Gerando range de datas

Olá pessoal,

Para aqueles que estiverem procurando por um script que gere uma range de datas para você, abaixo segue o script de uma função para irá realizar esse trabalho.

CREATE FUNCTION dbo.GeraRangeDatas
(@DataInicial date, @NumeroDias int)
RETURNS @DateList TABLE (Posicao int, Data DATE)
AS BEGIN
DECLARE @Ponteiro int = 0;
WHILE (@Ponteiro < @NumeroDias) BEGIN
INSERT INTO @DateList
VALUES(@Ponteiro + 1,
DATEADD(day,@Ponteiro,@DataInicial));
SET @Ponteiro += 1;
END;
RETURN;
END;
GO

Feito a criação da função, basta chamá-lo através do seguinte comando.

SELECT * FROM dbo.GeraRangeDatas(‘2009-12-31’,14);

Onde você passa a data de inicio e o numero de dias a frente que você deseja gerar.

Espero que tenham gostado.

Abraços,
Marcos Freccia

Sobre Marcos Freccia

MVP em SQL Server (Data Plataform) , especialista em SQL Server, e atualmente trabalhando com Microsoft Azure!

Publicado em fevereiro 24, 2013, em Desenvolvimento, SQL Server, VirtualPass e marcado como , , . Adicione o link aos favoritos. 1 comentário.

  1. Hum, interessante. No PostgreSQL a gente usa o generate_series que é nativo: http://www.postgresql.org/docs/current/static/functions-srf.html

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: