오라클에서 보통 오늘날짜를 가져오기하실때 어떤 명령을 통해서 가져오시나요?
보통 SELECT TO_CHAR(SYSDATE,'YYYYMMDD') FROM DUAL 로 많이들 가져오시는데요...
그럼 어제 날짜는 어떻게 가져오시나요?
SELECT TO_CHAR(SYSDATE,'YYYYMMDD') -1 FROM DUAL을 사용하신다면 잘못하면
망할 수도있습니다. 위의 명령은 오늘날짜를 가져와서 문자형식의 YYYYMMDD로 바꾼후에 거기서
1을 빼라는 명령입니다. 그러면, 매달 초일인 경우 즉 1일인 경우는 어떻게 될까요? 실제 실행해
보시면 20060500이라는 황당한 값을 보시게 될겁니다. 그건 어제의 날짜가 아니죠...
거기다, 내부적으로 형변환을 하겠죠? 문자에서 숫자를 뺄 수는 없는 노릇이니까요? 그럼 형변환만
두번 일어나게 됩니다. 날짜 -> 문자 -> 숫자 이렇게요.
따라서 ,SELECT TO_CHAR(SYSDATE-1,'YYYYMMDD') FROM DUAL 이렇게 해주시는 것이
맞습니다. 이렇게 하시면 매달 초일인 경우에도 문제없이 연산이 가능합니다. 더구나 날짜 - 숫자는
해당 일자에서 숫자값만큼을 뺀 날자가 그대로 유지됩니다. 즉, 내부적인 형변환이 일어나지
않습니다.날짜->문자 이렇게 변하겠죠.
날짜 +/- 숫자는 해당일자만큼 더하거나 빼는 것이란걸 기억해 두시기 바랍니다 ^0^;
'오라클 실무..' 카테고리의 다른 글
HINT 사용법 (1) | 2006.05.16 |
---|---|
사용자추가하기 (1) | 2006.05.16 |
특정 테이블의 테이블스페이스를 변경하는 명령을 생성하는 쿼리 (1) | 2006.05.16 |
서로다른 user의 같은schema에 인덱스 배껴서 만들기 (1) | 2006.05.16 |
MEMORY 복제용 COPY_T 쉽게 만들기 (1) | 2006.05.16 |