Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL에서 이번 달 마지막 날 구하는 방법 – LAST_DAY() 함수 활용하기

MySQL에서 이번 달의 마지막 날 조회하기

MySQL에서는 LAST_DAY() 함수를 사용하면 특정 날짜가 속한 달의 마지막 날을 아주 간단하게 구할 수 있습니다. 이 함수에 NOW()를 인자로 전달하면 현재 날짜가 포함된 달의 마지막 날짜를 반환합니다.

기본 쿼리 예제

아래와 같은 쿼리를 실행하면 이번 달의 마지막 날을 확인할 수 있습니다.

mysql> SELECT LAST_DAY(NOW()) AS 'LAST DAY OF CURRENT MONTH';
+---------------------------+
| LAST DAY OF CURRENT MONTH |
+---------------------------+
| 2017-10-31 |
+---------------------------+
1 row in set (0.00 sec)

실행 결과를 보면 해당 시점(2017년 10월)의 마지막 날인 10월 31일이 정상적으로 반환된 것을 확인할 수 있습니다.

LAST_DAY() 함수의 동작 방식

LAST_DAY(date)는 인자로 전달받은 날짜가 속한 월의 가장 마지막 날짜를 DATE 타입으로 반환합니다. 몇 가지 특징은 다음과 같습니다.

  • 월의 크기(28일, 30일, 31일)에 관계없이 자동으로 올바른 마지막 날을 계산해 줍니다.
  • 윤년 여부도 자동으로 반영되므로, 2월의 경우 윤년이면 29일을 반환합니다.
  • 유효하지 않은 날짜가 전달되면 NULL을 반환합니다.

다양한 활용 예제

현재 날짜뿐만 아니라 임의의 날짜에 대해서도 사용할 수 있습니다.

-- 특정 날짜가 속한 달의 마지막 날
SELECT LAST_DAY('2024-02-15'); -- 결과: 2024-02-29 (윤년)

-- 지난달의 마지막 날
SELECT LAST_DAY(NOW() - INTERVAL 1 MONTH);

-- 다음 달의 마지막 날
SELECT LAST_DAY(NOW() + INTERVAL 1 MONTH);

이처럼 LAST_DAY() 함수는 날짜 계산 로직을 직접 작성할 필요 없이 한 줄의 쿼리로 원하는 결과를 얻을 수 있어, 월별 집계나 마감일 처리 등 실무에서 매우 유용하게 활용됩니다.