* 질문 등록 시 다음의 내용을 꼭 기입하여 주세요.
Window7 32bit | |
[cubrid_rel] 수행 결과 | |
[도움말]-[버전정보] 확인 | |
java |
* CUBRID 응용 오류, SQL 오류 또는 SQL 튜닝 관련된 문의는 반드시 다음의 내용을 추가해 주세요. 비밀글이나 비밀 댓글도 가능합니다.
* 저희가 상황을 이해하고, 재현이 가능해야 알 수 있는 문제들이 많습니다. 가능한 정보/정황들을 부탁합니다.
에러 내용 및 재현 방법 | 재현 가능한 Source와 SQL |
관련 테이블(인덱스, 키정보 포함) 정보 | CUBRID 홈 디렉토리 아래 log 디렉토리 압축 |
-------------- 아래에 질문 사항을 기입해 주세요. ------------------------------------------------------------------------
select * from member
where DATEDIFF(SYSDATE, TO_DATE(birthday, 'yyyymmdd'))/365 BETWEEN 20 AND 29
birthday 는 char(8) 타입인데요.
실행 오류 : -784 Two arguments are mismatched. 라고 나옵니다.
birthday 가 TO_DATE로 변환 시 오류 발생시에는 무시하는 기능 - (예) nvl 함수 같은 것 - 은 없을까요?
테스트하면 정상 출력됩니다.
csql> select SYSDATE, TO_DATE(birthday, 'yyyymmdd'), DATEDIFF(SYSDATE, TO_DATE(birthday, 'yyyymmdd'))/365 from member;
=== <Result of SELECT Command in Line 1> ===
SYS_DATE to_date(birthday, 'yyyymmdd') datediff( SYS_DATE , to_date(birthday, 'yyyymmdd'))/365
=======================================================================================================
01/18/2019 01/18/1999 20
** CUBRID버전정보(확인방법: cubrid_rel) 데이터 형태를 알려주시면 다시 확인해 보겠습니다.
참고로, (예)nvl함수같은것 은 ...CAST()를 이용해보세요..(https://www.cubrid.org/manual/ko/9.3.0/sql/function/typecast_fn.html?highlight=cast#id1)
감사합니다.