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

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

MySQL에서 이전 달의 마지막 날 구하기

MySQL에서는 LAST_DAY() 함수와 INTERVAL 연산을 조합하면 아주 간단하게 이전 달의 마지막 날짜를 구할 수 있습니다.

기본 쿼리

다음과 같이 NOW()에서 1개월을 빼고, 그 결과에 LAST_DAY() 함수를 적용하면 됩니다.

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

+---------------------------+
| 지난 달의 마지막 날 |
+---------------------------+
| 2017-09-30 |
+---------------------------+
1 row in set (0.00 sec)

쿼리 동작 원리

1. NOW() - INTERVAL 1 MONTH

현재 시각에서 정확히 1개월을 뺀 날짜를 계산합니다. 예를 들어 현재가 2017년 10월이라면 2017년 9월의 같은 일자가 반환됩니다.

2. LAST_DAY()

인자로 전달된 날짜가 속한 달의 마지막 날을 반환합니다. 월말이 28일, 29일, 30일, 31일 중 무엇이든 자동으로 계산해 주므로 윤년 처리도 별도로 신경 쓸 필요가 없습니다.

참고: 다른 방법들

상황에 따라 아래와 같은 변형 쿼리도 유용하게 사용할 수 있습니다.

  • 이번 달의 마지막 날: SELECT LAST_DAY(NOW());
  • 다음 달의 마지막 날: SELECT LAST_DAY(NOW() + INTERVAL 1 MONTH);
  • 특정 날짜 기준 이전 달의 마지막 날: SELECT LAST_DAY('2017-10-15' - INTERVAL 1 MONTH);

이처럼 LAST_DAY() 함수 하나만 기억해 두면 월말 날짜 계산과 관련된 대부분의 요구 사항을 손쉽게 처리할 수 있습니다.