Začněte nyníZačněte zdarma

Vytvoření časové řady pro jeden rok

Cílem tohoto cvičení je vytvořit řadu dnů pro jeden rok. K tomu budeš potřebovat tyto dvě funkce pro práci s datem a časem:

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

Funkce GETDATE() vrátí aktuální čas (např. 2019-03-14 20:09:14) a DATEADD(month, 1, GETDATE()) vrátí aktuální datum plus jeden měsíc (např. 2019-04-14 20:09:14).

Pro vytvoření řady dnů v roce potřebuješ 365 rekurzivních kroků. Počet iterací proto navyš pomocí OPTION (MAXRECURSION n), kde n představuje počet iterací.

Toto cvičení je součástí kurzu

Hierarchical and Recursive Queries in SQL Server

Zobrazit kurz

Pokyny k cvičení

  • Inicializuj aktuální čas jako time.
  • Vyber CTE rekurzivně a spoj kotevní a rekurzivní člen správným příkazem.
  • Omez počet iterací na počet dní v roce minus 1.
  • Navyš maximální počet iterací na počet dní v roce pomocí OPTION (MAXRECURSION n).

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

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 ___)
Upravit a spustit kód