invaild data value 0 2 3,456

by 라면용 [SQL Query] [2024.02.29 18:04:55]


select * from LCNR 

where TO_DATE(A.ADVN_YM , 'YYYYMM') > SYSDATE + INTERVAL '-3' YEAR;

입니다 여기서 제목과 같은 에러가 나는데 where 절 에러가 해결이 안되어서요.. 어디를 고칠까요?

by 솔밭 [2024.03.03 21:11:19]

A.ADVN_YM 의 값을 확인해 보세요. 


by 마농 [2024.03.03 23:37:51]

테이블의 해당 컬럼에 yyyymm 에 해당되지 않는 값이 있습니다.
이 값을 찾아 지우던가 수정하던가 해야 할 듯 하네요.
그 이전에 이 조건은 컬럼을 가공하여 조건을 주고 있는데.
컬럼 가공하는 것보다는 컬럼을 그대로 둔 채 조건을 가공하는 것이 성능상으로도 좋습니다.
컬럼을 가공하지 않았다면 애초에 이런 에러가 발생하지 않았을 것입니다.
- 수정전 : WHERE TO_DATE(a.advn_ym , 'yyyymm') > SYSDATE + INTERVAL '-3' YEAR
- 수정후 : WHERE a.advn_ym > TO_CHAR(SYSDATE + INTERVAL '-3' YEAR, 'yyyymm')
 

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