안녕하세요. 제가 DB2에 대해서 워낙 잘 몰라서 질문드립니다.
문제는 'YYYYMMDD' 형식으로 된 문자열을 날짜 타입으로 변환하는 것과
날짜 타입을 'YYYYMMDD' 형식의 문자열로 변환하는 것입니다.
이 사이트를 돌아다니고 DB2정보센터에도 가봤는데..
딱히 도움이 될만한 것을 발견하지 못해서 도움 요청드립니다.
아시는 분은 좀 알려주십시오.
YYYYMMDD와같은 형식의 변환은 ORACLE에서는 to_date, to_char를 쓰면 쉽게 변환해서 쓸수 있으실 겁니다.
DB2에서 지원하는 to_date, to_char는 Timestamp를 기본으로 하기 때문에 ORACLE과 같이 쓸수 가 없습니다.
그래서 그러한 기능을 하는 사용자정의함수(UDF)를 만들어 사용하셔야 합니다.
DB2의 Date type은 10 byte 이며 형식은 yyyy-mm-dd or mm/dd/yyyy or dd.mm.yyyy입니다. 문자열을 이런식으로 바꾸어서 입력하시면 될것같네요.
dbsvr3@testinst:/home/testinst> db2 "values(current date)"
1 ----------2005-09-29
1 레코드가 선택됨.
dbsvr3@testinst:/home/testinst> db2 "values(hex(current date))"
1 --------20050929
* YYYYMMDD --> YYYY-MM-DD SELECT CHAR(DATE(INSERT(INSERT('20061231',5,0,'-'),8,0,'-'))) FROM SYSIBM.SYSDUMMY1 (CHAR,DATE는 비정상날짜체크임, 필요없음 빼도됨)
* YYYY-MM-DD --> YYYYMMDD SELECT HEX(DATE('2006-12-31')) FROM SYSIBM.SYSDUMMY1
둘다 SQLCODE !=0 이면 비정상날짜임