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

MySQL에서 다음 달 첫째 날(1일) 구하는 방법

MySQL에서 다음 달 1일 구하기

MySQL에서 다음 달의 첫째 날을 구하려면 DATE_FORMAT() 함수와 CURDATE() 함수, 그리고 INTERVAL 키워드를 함께 사용하면 됩니다.

핵심 아이디어는 현재 날짜에 한 달을 더한 뒤, 날짜 형식을 '%Y-%m-01'로 지정하여 일(day) 부분을 강제로 '01'로 만드는 것입니다.

기본 쿼리

mysql> SELECT DATE_FORMAT(CURDATE() + INTERVAL 1 MONTH, '%Y-%m-01') AS 'FIRST DAY OF NEXT MONTH';
+-------------------------+
| FIRST DAY OF NEXT MONTH |
+-------------------------+
| 2017-11-01              |
+-------------------------+
1 row in set (0.00 sec)

쿼리 설명

  • CURDATE(): 현재 날짜를 반환합니다. (예: 2017-10-15)
  • + INTERVAL 1 MONTH: 현재 날짜에 정확히 한 달을 더합니다. (예: 2017-11-15)
  • DATE_FORMAT(..., '%Y-%m-01'): 연도와 월은 그대로 유지하고, 일 부분을 항상 '01'로 고정하여 출력합니다.

다른 방법: LAST_DAY() 함수 활용

LAST_DAY() 함수를 사용하는 방법도 있습니다. 이번 달의 마지막 날에 하루를 더하면 자연스럽게 다음 달 1일이 됩니다.

mysql> SELECT LAST_DAY(CURDATE()) + INTERVAL 1 DAY AS 'FIRST DAY OF NEXT MONTH';
+-------------------------+
| FIRST DAY OF NEXT MONTH |
+-------------------------+
| 2017-11-01              |
+-------------------------+
1 row in set (0.00 sec)

두 방법 모두 동일한 결과를 반환하지만, DATE_FORMAT() 방식이 더 직관적이고 널리 사용됩니다. 특정 테이블의 날짜 컬럼을 기준으로 다음 달 1일을 구해야 한다면 CURDATE() 대신 해당 컬럼명을 넣어주면 됩니다.