시작하기무료로 시작하기

1년치 시계열 만들기

이 연습 문제의 목표는 1년 동안의 날짜 목록(시계열)을 만드는 것입니다. 이를 위해 다음 두 가지 시간/날짜 함수를 사용하세요.

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

GETDATE()는 현재 시각을 반환합니다(예: 2019-03-14 20:09:14). DATEADD(month, 1, GETDATE())는 현재 시각에 한 달을 더한 값을 반환합니다(예: 2019-04-14 20:09:14).

1년치 날짜 목록을 얻으려면 365번의 재귀 단계가 필요합니다. 따라서 OPTION (MAXRECURSION n)에서 n을 반복 횟수(여기서는 365)를 나타내도록 늘려 주세요.

이 연습은 강의의 일부입니다

SQL Server에서의 계층형 및 재귀 쿼리

강의 보기

연습 안내

  • 현재 시각을 time으로 초기화하세요.
  • CTE를 재귀적으로 선택하고, 앵커 멤버와 재귀 멤버를 올바른 구문으로 결합하세요.
  • 반복 횟수를 1년의 일수에서 1을 뺀 값으로 제한하세요.
  • OPTION (MAXRECURSION n)을 사용해 최대 반복 횟수를 1년의 일수와 같게 늘리세요.

실습형 인터랙티브 연습

이 예제를 이 샘플 코드를 완성하여 풀어보세요.

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 ___)
코드 편집 및 실행