CrashOverride 잡동사니 !!

Oracle :: TRUNC() 함수 본문

Tip & Tech/Database

Oracle :: TRUNC() 함수

CrashOverride 2009. 9. 22. 11:11

SELECT SYSDATE FROM DUAL;
위 문장을 실행해보면 현재 날짜를 출력하여준다.


SYSDATE 는 DATE 형식으로 날짜를 출력해주는데..

TRUNC() 함수는 날짜 형식 또한 잘라낼수 있다.
내가 아는 바에 의하면 숫자와 날짜에 한해서만 동작하는것으로 알고 있다.

그럼 TRUNC() 함수를 사용해서 현재날짜를 절삭해보면..

SELECT TRUNC(SYSDATE) FROM DUAL;


위의 문장을 실행하면 된다.
결과값은

자동으로 오늘 날짜에서 시간이 떨어져 나가고 년-월-일 의 값으로 나온다.
조금더 명시적으로 표현해주자면아래와 같이 써주어도 된다.

SELECT TRUNC(SYSDATE , 'DD') FROM DUAL;

위의 SQL 명령도 같은 결과값을 가진다.


그럼 이어서 여기에 날짜를 더하거나 빼거나 하고.. 절삭한후에 시간을 지정해주는 부분을 보자
조금 더 살펴봐야 알겠지만.. 너무나 쉽게도.. 그냥 더하고 빼면 된다 -_-;

SELECT TRUNC(SYSDATE+1) FROM DUAL;

위의 문장을 실행하게되면..

위의 결과값인 2008-05-29 에서 하루가 추가되는것을 볼 수 있습니다.
같은 방식으로 7을 더하면 일주일 후의 날짜가 나오겠죠?


SELECT TRUNC(SYSDATE+1)+1/24 FROM DUAL;

이번에 SQL 문을 실행하면 절삭하였던 시간을 다시 붙여줄수 있습니다.

기본적이 구문을 시작으로 간단한 응용까지 해봤습니다.
좀더 응용해보면 시간아래에  분/초 도 달수 있겠죠?



SQL의 substring 방법은 strsub(S, N1, N2)의 형태로
문자열 S를  N1 부터 N2에 입력된 숫자 갯수만큼 문자를 읽는다

예를 들면

select substr('19000101-1234567', 10,7) from dual;
10부터 7개 문자를 읽어서 1234567을 읽어온다

출처 :: Holic's Tistory
http://holiclove.tistory.com/entry/SQL-함수들

'Tip & Tech > Database' 카테고리의 다른 글

Oracle :: NVL, DECODE 함수  (0) 2009.09.22
Oracle :: TableSpace 용량변경  (0) 2009.09.22
Comments