Rekurzivni CTE za kreiranje datuma

Objavljeno: 05-03-2014 | Autor: Nenad Živković | Kategorija: T-SQL, Trikovi

Ознаке: , ,

0

Ukoliko vam je potrebno da izvučete sve datume u nekom periodu, to možete učiniti uz pomoć rekurzivnog CTE kome zadate početni i krajnji datum. U baznom delu se selektuje početni datum, a u rekurzivnom dodaje po jedan dan dok ne stigne do krajnjeg. Primer je u sledećem upitu:

DECLARE @pocetni DATE;
DECLARE @krajnji DATE;

SET @pocetni = '20131226';
SET @krajnji = '20140304';

WITH datumi AS 
(
	SELECT @pocetni AS DT
	UNION ALL
	SELECT DATEADD(DD, 1, DT)
	FROM datumi
	WHERE DATEADD(DD, 1, DT) <= @krajnji
)
SELECT * FROM datumi
OPTION (MAXRECURSION 0);