Oracle | 오라클 TO_TIMESTAMP


이 전 [오라클|Oracle] 날짜타입 가지고 놀기 - TO_DATE, TOCHAR ☜ 포스트에서 날짜 타입을 제어하는 방법을 알아봤었습니다.  TO_DATETIME 과 SYSDATE를 사용하는 방법이었습니다.

 

그런데, 이 방법은 년-월-일 시:분:초 까지만 제어나 통제가 가능한 방법이었습니다.

그래서 오늘은 초(Second)의 소수점까지 제어할 수 있는 함수를 알아보도록 하겠습니다.

 

위 제목에서도 나와있듯이 TO_TIMESTAMP 함수 입니다.

 

기본적으로 TIMESTAMP 함수를 호출하는 방법입니다.

 

 

SELECT SYSTIMESTAMP FROM DUAL

 

 

 

 NOW

 

 2014/08/28 04:52:48.420100000

 

TIMESTAMP 타입을 CHAR 타입으로 변환하는 방법입니다.

 

 

SELECT TO_CHAR(SYSTIMESTAMP, 'YYYY-MM-DD HH24:MI:SS.FF4') NOW FROM DUAL

 

 

 

 NOW

 

 2014-08-28 13:50:28.4997

 

붉은 색으로 표시한 ' FF4' 이 부분이 바로 소수점 자리 수를 제어하는 부분입니다. FF4 는 소수점 4째 자리까지 표시하겠다는 의미이며, FF9는 9째 자리까지 제어한다는 의미입니다.

 

반대로 CHAR 타입을 TIMESTAMP 타입으로 변경하는 방법입니다.

 

 

SELECT TO_TIMESTAMP('2014-08-28 13:53:08', 'YYYY-MM-DD HH24:MI:SS') NOW FROM DUAL

 

 

 

 NOW

 

 2014/08/28 13:53:08.000000000

 

TIMESTAMP 타입을 계산하는 방식입니다.

이전 DATETIME 형식은 1일을 1로 보고 나머지 시간을 계산하면 된다고 설명드렸었는데요....

TIMESTAMP 타입은 INTERVAL을 사용합니다.

 

 

SELECT TO_CHAR(SYSTIMESTAMP, 'YY-MM-DD HH24:MI:SS.FF2') NOW

     , TO_CHAR(SYSTIMESTAMP + INTERVAL  '1 01:01:01.01' DAY TO SECOND, 'YY-MM-DD HH24:MI:SS.FF2') NOW_PLUS 

FROM DUAL;

 

 

 

 NOW

 NOWPLUS

 

 14-08-28 14:00:49.05

 14-08-29 15:01:50.06

 

붉은 색의 INTERVAL  '1 01:01:01.01' DAY TO SECOND 의 의미는 하루하고 한 시간 일분 1과 .01 초를 더하겠다는 의미입니다.

 

 

Posted by 쭈니루
TAG

댓글을 달아 주세요