DATE - DATE를 했더니 interval type이라고 해서 일 시 분 초 단위로 나옵니다.
아래 글들을 보니 인포믹스에서는 to_number가 없다고 하던데..
interval type은 그럼 substr로 끊어서 써야 하는것입니까?
substr은 먹히는지요???
질문에 요지는 시간은 필요없고 날짜 차이값을 구하려는 것 같습니다.
그럴땐
to_char(DATE1,'%Y%m%d') - to_char(DATE2,'%Y%m%d')
이렇게 하면 됩니다.
그리고 substr도 사용할 수 있습니다.
date형,char형,int형 모두
다만 주의할건
date형은 '2003-03-28 09:24:45.000' 이런 포멧으로 되어있으니 잘 짤라 원하는 값이 나옵니다.
과거에 제가 작업할 때는 날짜 빼기 날짜가 안돼서..
달력 프로그램을 하나 따로 짜서 사용했었던 기억이 납니다..
날짜는 십진계산이 아니라서..그냥 빼면 정확한 값을 얻을수 없었던 기억이 나네요.^^;;
위에 to_char로 변환하는 건 답이 아니군요.. 다시 생각해보니...
날짜 연산은 잘 되는거 같구요..
간단한 함수를 짜봤습니다.
사용법은 date_diff(date,date)
하시면 int 가 반환됩니다.
create procedure date_diff( date1 date , date2 date )
returning int;
define ret int;
let ret = mdy( substr(date1,6,2) , substr(date1,9,2) , substr(date1,1,4) )
- mdy( substr(date2,6,2) , substr(date2,9,2) , substr(date2,1,4) ) ;
return ret;
end procedure;