1 2 3 select STR_TO_DATE(DATE_FORMAT(DATE_SUB( '2018-03-15' , INTERVAL (DAYOFMONTH( '2018-03-15' ) - 1 ) DAY), '%Y-%m-%d' ), '%Y-%m-%d' ), STR_TO_DATE(DATE_FORMAT(DATE_ADD((DATE_SUB( '2018-03-15' , INTERVAL (DAYOFMONTH( '2018-03-15' ) - 1 ) DAY)), interval 1 MONTH), '%Y-%m-%d' ), '%Y-%m-%d' ); cs - 2번째 라인, STR_TO_DATE(DATE_FORMAT(DATE_SUB('2018-03-15', INTERVAL (DAYOFMONTH('2018-03-15')-1) DAY), '%Y-%m-%d'), '%Y-%m-%d') : '2018-03-15'의 첫날짜 구하기 - 3번째 라인, STR_TO_DATE(DATE_FORMAT(DATE_ADD((DATE_SUB('2018-03-15', INTERVAL (DAYOFMONTH('2018-03-15')-1) DAY)), interval 1 MONTH), '%Y-%m-%d'), '%Y-%m-%d') : '2018-03-15'의 다음달 첫날짜 구하기