Construa geradores de data e manipule data e hora no SQL Server

Este artigo demonstra como construir geradores de data usando o SQL.

Esse artigo faz parte da revista SQL Magazine edição 47. Clique aqui para ler todos os artigos desta edição

Clique aqui para ler esse artigo em PDF.

 

Construa geradores de data e manipule data e hora no SQL Server

 

Às vezes você necessita gerar seqüências de valores de data e/ ou hora. Por exemplo, imagine um data warehouse com sua estrutura multidimensional e armazenando as medidas e dimensões em tabelas fato e dimensão. Já que uma das dimensões é praticamente sempre a dimensão tempo, você necessitaria gerar a seqüência de valores de data (hora) e carregá-los na tabela de dimensão de hora. Este artigo demonstra como construir geradores de data usando o SQL. Além disto, ele mostrará algumas técnicas úteis que podem ajudá-lo a manipular dados de data e hora.

 

Geradores de data

Primeiro, vamos criar e carregar uma tabela auxiliar que consiste de uma coluna do tipo integer .

 

Listagem 1. Criando e carregando a tabela auxiliar.

SET NOCOUNT ON;

DECLARE

@startDate smalldatetime, @endDate smalldatetime, @i int;

 SELECT @i = 1,

 @startDate = ‘Jan 01, 2007’,

 @endDate = DATEADD(yy, 1, @startDate);

  IF EXISTS(SELECT * FROM sysobjects

  WHERE ID = (OBJECT_ID(‘dbo.sequence’)) AND xtype = ‘U’)

  DROP TABLE dbo.sequence;

  CREATE TABLE dbo.sequence(num int NOT NULL);

   WHILE(@i <= (SELECT DATEDIFF(dd, @startDate, @endDate)))

    BEGIN

    INSERT INTO dbo.sequence VALUES(@i);

    SET @i = @i + 1;

   END

 

 Você pode usar o SQL para gerar seqüências de números de diversas maneiras. O código da Listagem 1 mantém as coisas sem complicações usando um loop simples.A quantidade de números (365) na tabela auxiliar é igual ao número de dias no ano 2007 e foram calculados automaticamente usando a função DATEDIFF  do SQL Server. Agora, você pode gerar a seqüência de dias no ano 2007 como mostrado na Listagem 2. "

[...] continue lendo...
Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados