DATE_FORMAT()과 LAST_DAY() 함수를 사용하면 날짜 컬럼에서 해당 월의 첫날과 마지막 날을 쉽게 구할 수 있습니다.
테이블 생성 및 데이터 삽입
mysql> CREATE TABLE DemoTable (
-> DueDate DATE
-> );
Query OK, 0 rows affected (0.73 sec)
mysql> INSERT INTO DemoTable VALUES('2019-01-11');
Query OK, 1 row affected (0.08 sec)
mysql> INSERT INTO DemoTable VALUES('2019-04-19');
Query OK, 1 row affected (0.14 sec)
데이터 조회
mysql> SELECT * FROM DemoTable;
+------------+ | DueDate | +------------+ | 2019-01-11 | | 2019-04-19 | +------------+ 2 rows in set (0.00 sec)
월의 첫날과 마지막 날 조회
mysql> SELECT DATE_FORMAT(DueDate, '%Y-%m-01') AS FirstDayOfMonth,
-> LAST_DAY(DueDate) AS LastDayOfMonth
-> FROM DemoTable;
+-----------------+----------------+ | FirstDayOfMonth | LastDayOfMonth | +-----------------+----------------+ | 2019-01-01 | 2019-01-31 | | 2019-04-01 | 2019-04-30 | +-----------------+----------------+ 2 rows in set (0.00 sec)
함수 설명:
DATE_FORMAT(date, '%Y-%m-01'): 년-월-01 형식으로 첫날 생성LAST_DAY(date): 해당 월의 마지막 날짜 반환 (윤년 자동 계산)
응용: DATE_SUB(LAST_DAY(DueDate), INTERVAL 1 DAY)로 마지막 전날 구하기 등 다양하게 활용 가능합니다.