ComeçarComece de graça

Crie uma série temporal de um ano

O objetivo deste exercício é criar uma série de dias para um ano. Para isso, você deve usar as duas funções de data/hora abaixo:

  • GETDATE()
  • DATEADD(datepart, number, date)

Com GETDATE() você obtém a hora atual (por exemplo, 2019-03-14 20:09:14) e, com DATEADD(month, 1, GETDATE()), você obtém a data atual mais um mês (por exemplo, 2019-04-14 20:09:14).

Para obter uma série de dias para um ano, você precisa de 365 passos de recursão. Portanto, aumente o número de iterações usando OPTION (MAXRECURSION n), em que n representa o número de iterações.

Este exercício faz parte do curso

Consultas Hierárquicas e Recursivas no SQL Server

Ver curso

Instruções do exercício

  • Inicialize a hora atual como time.
  • Selecione a CTE recursivamente e combine o membro âncora e o membro recursivo com a instrução correta.
  • Limite o número de iterações aos dias de um ano menos 1.
  • Aumente o número máximo de iterações para o número de dias de um ano com OPTION (MAXRECURSION n).

Exercício interativo prático

Experimente este exercício completando este código de exemplo.

WITH time_series AS (
	SELECT 
  		-- Get the current time
	    ___ AS time
  	UNION ALL
	SELECT 
	    DATEADD(day, 1, time)
  	-- Call the CTE recursively
	FROM ___
  	-- Limit the time series to 1 year minus 1 (365 days -1)
  	WHERE time < GETDATE() + ___)
    
SELECT time
FROM time_series
-- Increase the number of iterations (365 days)
OPTION(MAXRECURSION ___)
Editar e executar o código