DB
[DB][MySQL] 동적으로 년월 생성
오선지♬
2025. 3. 4. 14:04
728x90
반응형
목표
- 20250101 ~ 20251231 범위의 YYYYMM(년월) 목록을 동적으로 생성.
20250101 ➡️ startDt
20251231 ➡️ endDt
WITH RECURSIVE DateSeries AS (
-- 시작 날짜를 YYYYMM 형식으로 변환하여 가져오기
SELECT DATE_FORMAT(STR_TO_DATE(#{startDt}, '%Y%m%d'), '%Y%m') AS YYYYMM
UNION ALL
-- 이전 월에서 1개월 추가한 YYYYMM을 생성
SELECT DATE_FORMAT(DATE_ADD(STR_TO_DATE(YYYYMM, '%Y%m'), INTERVAL 1 MONTH), '%Y%m')
FROM DateSeries
WHERE YYYYMM < DATE_FORMAT(STR_TO_DATE(#{endDt}, '%Y%m%d'), '%Y%m')
)
SELECT
DS.YYYYMM,
FROM DateSeries DS;728x90
반응형