MySQL에서 날짜 데이터가 속한 달의 마지막 날을 구하려면 LAST_DAY() 함수를 사용하면 됩니다. 이 함수는 인자로 전달된 날짜가 포함된 해당 월의 마지막 날짜를 자동으로 계산해 반환해 주기 때문에, 윤년이나 월별 일수 차이를 직접 처리할 필요가 없습니다.
기본 문법
SELECT LAST_DAY(yourColumnName) FROM yourTableName;
예제 테이블 생성
먼저 실습에 사용할 테이블을 생성합니다.
mysql> create table DemoTable
(
ShippingDate date
);
Query OK, 0 rows affected (0.69 sec)다음으로 INSERT 명령어를 사용해 몇 개의 레코드를 삽입합니다.
mysql> insert into DemoTable values('2019-01-12');
Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable values('2019-02-01');
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable values('2019-03-04');
Query OK, 1 row affected (0.22 sec)
mysql> insert into DemoTable values('2019-04-21');
Query OK, 1 row affected (0.14 sec)SELECT 문으로 테이블에 저장된 모든 레코드를 확인해 보겠습니다.
mysql> select *from DemoTable;
출력 결과
+--------------+ | ShippingDate | +--------------+ | 2019-01-12 | | 2019-02-01 | | 2019-03-04 | | 2019-04-21 | +--------------+ 4 rows in set (0.00 sec)
LAST_DAY() 함수로 각 월의 마지막 날짜 조회하기
아래 쿼리는 MySQL에서 모든 월의 마지막 날짜를 가져오는 방법을 보여줍니다.
mysql> select LAST_DAY(ShippingDate) from DemoTable;
출력 결과
+------------------------+ | LAST_DAY(ShippingDate) | +------------------------+ | 2019-01-31 | | 2019-02-28 | | 2019-03-31 | | 2019-04-30 | +------------------------+ 4 rows in set (0.00 sec)
실행 결과를 보면 각 날짜가 속한 월의 마지막 날이 정확히 반환된 것을 확인할 수 있습니다. 예를 들어 2월은 28일(윤년이 아닌 경우), 4월은 30일로 계산됩니다. 이처럼 LAST_DAY() 함수를 활용하면 별도의 조건문 없이 간단하게 월말 날짜를 구할 수 있으며, 결산일 계산, 만기일 산정 등 다양한 업무 로직에 유용하게 사용할 수 있습니다.