開始使用免費開始

建立一整年的時間序列

本練習的目標是建立一整年天數的序列。為了完成這個任務,你需要使用下列兩個時間/日期函式:

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

使用 GETDATE() 可以取得現在時間(例如:2019-03-14 20:09:14),而 DATEADD(month, 1, GETDATE()) 會得到現在時間再加上一個月(例如:2019-04-14 20:09:14)。

若要產生一整年的每日序列,你需要 365 個遞迴步驟。 因此,請用 OPTION (MAXRECURSION n) 來增加疊代次數,其中 n 代表疊代次數。

本練習屬於課程

SQL Server 的階層式與遞迴查詢

檢視課程

練習說明

  • 將現在時間初始化為 time
  • 以遞迴方式選取 CTE,並用正確的語句結合錨點與遞迴成員。
  • 將疊代次數限制為一年中的天數減 1。
  • 使用 OPTION (MAXRECURSION n),把最大疊代次數提高到一年中的天數。

動手互動練習

試著完成這個範例程式碼,體驗一下這個練習。

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 ___)
編輯並執行程式碼