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)
로 비교하면 일자만 비교해서 결과를 내놓게 된다.
[출처] SYSDATE -1 처리시 주의할 점 (개발자로 살아남기) |작성자 정우아빠
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 |