[ Programing ]/Database

[MySQL] 현재 날짜의 첫날과 다음달의 첫날 구하기

Mister_Q 2024. 3. 13. 19:52

# 현재시간, 현재달 첫날, 다음달 첫날, 다음달(+10) 첫날
SELECT NOW(), 
     MAKEDATE(2024, 2),       -- 2024년 1월 2 일
     LAST_DAY(NOW()),      -- 현재 마지막 일
     LAST_DAY(NOW() - INTERVAL 1 MONTH),      -- 이전달 마지막 일
     LAST_DAY(NOW() + INTERVAL 1 MONTH),       -- 다음달 마지막 일
     DATE_ADD(LAST_DAY(NOW() - INTERVAL 1 MONTH), INTERVAL 1 DAY),      -- 현재달 처음 일
     DATE_ADD(LAST_DAY(NOW() + INTERVAL 1 MONTH), INTERVAL 1 DAY),      -- 다음달 처음 일
     DATE_ADD(LAST_DAY(NOW() + INTERVAL 10 MONTH), INTERVAL 1 DAY)      -- +10달 처음 일

-- 2024-03-13 19:49:02   2024-01-02   2024-03-31   2024-02-29   2024-04-30   2024-03-01   2024-05-01   2025-02-01


# 날짜 조건 조회
SELECT NOW(), '2024-04-13 20:06:34',
     DATE_ADD(LAST_DAY(NOW() - INTERVAL 1 MONTH), INTERVAL 1 DAY),
     DATE_ADD(LAST_DAY(NOW() + INTERVAL 1 MONTH), INTERVAL 1 DAY), 
     CASE
          WHEN ('2024-04-13 20:06:34' >= DATE_ADD(LAST_DAY(NOW() - INTERVAL 1 MONTH), INTERVAL 1 DAY)
               AND '2024-04-13 20:06:34' < DATE_ADD(LAST_DAY(NOW() + INTERVAL 1 MONTH), INTERVAL 1 DAY))
               THEN 33 
          ELSE 99
     END AS _IF
-- 2024-03-13 20:24:09    2024-04-13 20:06:34    2024-03-01    2024-05-01    33