1. '2018-03-31' 이 나오지는 않네요.
date_add(date_format('2018-04-31', '%Y-%m-%d'), INTERVAL -1 MONTH) ==> 에러(4월31일은 없는 날짜)
date_add(date_format('2018-04-30', '%Y-%m-%d'), INTERVAL -1 MONTH) ==> '2018-03-30'
2. 오라클과 비교해 보면
- 오라클의 ADD_MONTHS 함수와는 결과가 다르네요. 오라클 말일의 한달전은 말일이 나옴
- 오라클에서도 ADD_MONTHS 대신 Interval 을 이용하여 빼면 동일한 결과가 나오네요.
3. 불필요한 구문
- 참고로 date_format 함수는 문자를 날짜로 바꾸는 함수가 아닌 날짜를 문자로 바꾸는 함수입니다.
- 즉, 위 구문에서는 쓸데 없이 소모적으로 사용된 구문입니다. 빼야 하구요.
4. 말일의 한달전은 말일이 나와야 한다면?
- 로직이 좀 들어가야 할 것 같네요.
- 조건으로 말일날짜만 주어지나요? 아니면 중간 날짜로 주어질수도 있나요?
- 비교되는 컬럼 LE.SDATE 의 자료형은 뭔가요?(문자? or 날짜?)
- 저장 형태는? 날짜만 저장? 시분초까지 저장?