728x90
반응형

오라클에서 초단위 이하의 밀리세컨드 처리를 위해선 TIMESTAMP형을 사용해야 한다.
9i에서 추가된것 같다.

주로사용하는 DATE형은 초까지의 정보만 입력된다.

문자열의 날짜입력시
DATE형은
insert into TABLE_NAME (COL_NAME) values (to_date('20100723152301', 'YYYYMMDDHH24MISS'));
TIMESTAMP형은
insert into TABLE_NAME (COL_NAME) values (to_timestamp('20100723152301123', 'YYYYMMDDHH24MISSFF'));
-> 밀리세컨드를 3자리로 지정하여 표현하고 싶다면 FF3을, 4자리로 표현하고 싶다면 FF5를, 이와 같은 형식으로 바꾸어주면 된다.

포맷팅 해서 소숫점단위의 초를 보려면 FF 엘리먼트를 사용한다. TO_CHAR(SYSTIMESTAMP, 'YYYY-MM-DD HH:MM:SS.FF4')
ex) select to_char(COL_NAME, 'YYYY-MM-DD HH:MM:SS.FF4') temp_date from TABLE_NAME;

현재시간 입력시
DATE형은 SYSDATE를
TIMESTAMP는 SYSTIMESTAMP를 사용하면 된다.
 



이 Timestamp 타입의 문제는 연산하기가 만만치 않다는 겁니다. 보통 Date 타입에서는 초단위까지 더하거나 뺄 때 sysdate + 1/24/60/60 까지 가능한데, Timestamp 타입은 초단위 까지는 이런 방식대로 가능한데, 이런 식으로 밀리초를 계산할 수가 없습니다. 따로 INTERVAL 이라는 키워드를 이용해서 하는데, 예를 들어 이런 식이져...
SELECT TO_CHAR(SYSTIMESTAMP, 'MI.SS.FF4')
  , TO_CHAR(SYSTIMESTAMP + INTERVAL  '0 01:01:01.0100' DAY TO SECOND, 'MI.SS.FF4')  from dual;
728x90
반응형
블로그 이미지

nineDeveloper

안녕하세요 현직 개발자 입니다 ~ 빠르게 변화하는 세상에 뒤쳐지지 않도록 우리모두 열심히 공부합시다 ~! 개발공부는 넘나 재미있는 것~!

,