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
반응형