안녕하세요 디비 조작된 날짜의 차이를 구하고 싶은데 잘 되지 않네요 ㅠㅠ 부탁드리겠습니다.. 0 1 94

by 해피마인드 [Oracle 기초] 오라클 날짜차이 데이트차이 투데이트 TODATE [2018.11.08 16:33:02]


select TO_DATE(substr('20181108',1,6)) - TO_DATE(substr('20181101',1,6)) diff from dual;

안녕하세요 ^^ 새내기 개발자 입니다. 지금 쿼리를 수정하던 중에

두 날짜간의 차이를 구해야 하는데 

날짜보다는 연 월까지만 차이를 구하면됩니다. 

그런데 데이터에는 연월일 까지 들어가있어서 그 데이터를 연월까지만 쪼개서 투데이트로 계산하려 하니

ORA-01861: 리터럴이 형식 문자열과 일치하지 않음 라는 에러가 나오는데... 

다른방법을 찾고자 하는데 도무지 제실력으로는 잘 찾아지지가 않아서 도움요청드립니다..

잘좀 부탁드리겠습니다^^

 

by 마농 [2018.11.08 17:07:55]

날짜 변환시엔 포멧을 반드시 지정해 주는 습관이 필요합니다.
포멧을 지정하지 않으면 기본 포멧 사용하다가 에러날 가능성이 많습니다.
월 비교는 MONTHS_BETWEEN 사용하시면 됩니다.

SELECT sdt, edt
     , MONTHS_BETWEEN( TO_DATE(SUBSTR(edt, 1, 6), 'yyyymm')
                     , TO_DATE(SUBSTR(sdt, 1, 6), 'yyyymm')
                     ) AS mm
  FROM (SELECT '20181101' sdt, '20181108' edt FROM dual)
;

 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입