728x90
링크 => http://seojg79.tistory.com/entry/TODATE-%EB%B3%80%ED%99%98-%EC%98%A4%EB%A5%98-%EC%82%AC%EB%A1%80

쿼리문
SELECT TO_DATE(SYSDATE-1, 'YYYY-MM-DD') FROM dual;

결과
0013-03-12

왜 이런 결과가 나오느냐???

이유는 SYSDATE-1 자체로 벌써 DATE 타입인데 또 to_date() 함수로 DATE 타입으로 변경을 하려고 해서 그렇다.

오라클 서버의 nls_date_format과 클라이언트의 포맷이 달라서 오라클 서버는 저런 결과를 내놓게 된다.

오라클 서버의 nls_date_foramt을 사용하던지 trunc() 함수를 이용해서 오늘 날짜만 잘라서 내놓는 것도 하나의 해결책이 되겠다.

즉, A테이블의 date 와 B 테이블의 date 가 모두 DATE 형이라면

where trunc(a.date) = trunc(b.date)

로 비교하면 일자만 비교해서 결과를 내놓게 된다.
728x90

'DB' 카테고리의 다른 글

부적합한 열 인덱스  (0) 2013.01.08
ORACLE INDEX  (0) 2013.01.07
ORA-01858: 수치를 지정해야 할 위치에 비수치 문자가 지정되었습니다  (0) 2012.12.07
Got error 134 from storage engine  (0) 2012.10.23
fetch out of sequence  (0) 2012.08.29

+ Recent posts