IT 개발

[오라클|Oracle] 시간타입 소수점까지 제어하기 - TO_TIMESTAMP

쭈니루 2014. 8. 30. 12:16
반응형

이 전 [오라클|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 초를 더하겠다는 의미입니다.

반응형