RDB/MSSQL
[MSSQL] 특정 구간의 날짜 더미데이터 만들기 (with CTE)
kigo23
2023. 4. 17. 19:05
반응형
특정 구간의 날짜 더미데이터가 필요한 경우 CTE를 사용하여 다음과 같이 만들 수 있습니다.
DECLARE @start_time datetime = '20230401 00:00:00' --첫 날짜
DECLARE @end_time datetime = '20230401 23:00:00'; --마지막 날짜
DECLARE @time_diff int = 1; --설정할 시간 간격
WITH cte AS (
SELECT 0 AS n
UNION ALL
SELECT n + @time_diff
FROM cte
WHERE n < DATEDIFF(HOUR, @start_time, @end_time) -- HOUR 대신 다른 시간 단위 설정가능
)
SELECT DATEADD(HOUR, n, @start_time) FROM cte
OPTION (MAXRECURSION 0) --최대 재귀 횟수 제한해제
위 쿼리를 실행하면 다음과 같이 출력됩니다.