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
반응형
'SQL > ORACLE' 카테고리의 다른 글
[group by]오라클에서 특정 컬럼의 특정단어들로 group by 하는 법좀 알려주세여 (oracle)~ (0) | 2015.10.08 |
---|---|
[order by]oracle sql문에서 정렬 방식에 임의만든 값을 앞이나 맨뒤로 나오게 하는 쿼리가? (0) | 2015.10.08 |
oracle 요일 보는 법(요일 구하기) (0) | 2015.04.03 |
MSSQL VARCHAR(10) 을 ORACLE TO_CHAR 를 사용할 때 자리수표현 (0) | 2014.09.11 |
TIMESTAMP 밀리세컨드 시간 계산하기 (0) | 2014.07.14 |
03. [Oracle/오라클] SQL 문제 (0) | 2014.06.11 |
02. [Oracle/오라클] SQL 문제 (0) | 2014.06.11 |
01. [Oracle/오라클] Study_Day01 (0) | 2014.06.11 |