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

Advertisements

About Marcos Freccia

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

Posted on February 24, 2013, in Desenvolvimento, SQL Server, VirtualPass and tagged , , . Bookmark the permalink. 1 Comment.

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

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: