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

MySQL에서 다음 달의 마지막 날짜를 구하는 방법

MySQL에서는 LAST_DAY() 함수와 INTERVAL 표현식을 조합하면 아주 간단하게 다음 달의 마지막 날짜를 구할 수 있습니다. 별도의 복잡한 계산 없이 한 줄의 쿼리로 처리할 수 있다는 점이 큰 장점입니다.

기본 쿼리 예제

아래 쿼리를 실행하면 현재 날짜를 기준으로 다음 달의 마지막 날이 반환됩니다.

mysql> SELECT LAST_DAY(NOW() + INTERVAL 1 MONTH) AS '다음 달의 마지막 날';
+------------------------+
| 다음 달의 마지막 날 |
+------------------------+
| 2017-11-30 |
+------------------------+
1 row in set (0.00 sec)

쿼리의 동작 원리

이 쿼리는 세 단계로 나누어 이해할 수 있습니다.

  • NOW(): 현재 날짜와 시간을 반환합니다.
  • + INTERVAL 1 MONTH: 현재 날짜에 정확히 1개월을 더한 날짜를 계산합니다.
  • LAST_DAY(): 인자로 전달된 날짜가 속한 월의 마지막 날짜를 반환합니다.

즉, 현재 날짜에서 한 달 뒤의 임의 날짜를 만든 뒤, 그 날짜가 속한 달의 말일만 추출하는 방식입니다.

특정 날짜 기준으로 구하기

NOW() 대신 특정 날짜를 지정하면, 그 날짜를 기준으로 한 다음 달의 마지막 날도 손쉽게 구할 수 있습니다.

SELECT LAST_DAY('2024-03-15' + INTERVAL 1 MONTH) AS '결과';
-- 결과: 2024-04-30

참고 사항

LAST_DAY() 함수는 윤년과 각 달의 일수(28일, 29일, 30일, 31일)를 자동으로 처리해 주므로, 개발자가 일수를 직접 계산할 필요가 없습니다. 또한 이 방법은 이전 달(- INTERVAL 1 MONTH)이나 특정 개월 수 이후의 말일을 구할 때도 동일하게 응용할 수 있습니다.