데이터베이스 2017. 5. 11. 18:02



SQL의 실행 시간 측정등 밀리 세컨드 단위의 정밀한 작업이 필요한 곳에 TIMESTAMP 데이터 타입을 사용하죠!



그렇다면, TIMESTAMP 형식으로 등록된 데이터의 비교연산은 어떻게 할까요?



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
-- TIMESTAMP 연산을 위한 2개의 COLUMN이 포함된 테이블을 생성합니다.
CREATE TABLE TB_TIME_STAMP(
FROM_TIME           TIMESTAMP,
TO_TIME             TIMESTAMP
)
;
 
-- 생성된 테이블에 TIMESTAMP 형식의 데이터를 등록합니다.
INSERT INTO SCOTT.TB_TIME_STAMP(FROM_TIME, TO_TIME)
VALUES(SYSTIMESTAMP - 1/24, SYSTIMESTAMP)
;
 
-- 마직막으로 아래처럼 TIMESTAMP 연산을 수행하여 시간차이를 초단위로 변환합니다.
SELECT EXTRACT(HOUR FROM DT) * 3600 + EXTRACT(MINUTE FROM DT) * 60 + EXTRACT(SECOND FROM DT) AS DIFF_TIME
  FROM (
        SELECT TO_TIME - FROM_TIME AS DT
          FROM SCOTT.TB_TIME_STAMP
       )
;
cs


참고로, 위의 SYSTIMESTAMP - 1/24의 의미는 현재 시간에서 1시간 전의 값을 의미합니다.

그래서 두 컬럼의 연산 결과는 항상 3600.XXX가 되겠죠!

'데이터베이스' 카테고리의 다른 글

오라클 권한 조회  (0) 2017.06.28
오라클 계정과 권한  (0) 2017.06.23
오라클 TABLESPACE와 DATAFILE  (0) 2017.06.16
오라클 - PIVOT과 UNPIVOT  (0) 2017.02.02
오라클의 동적 PL SQL 작성 - EXECUTE IMMEDIATE  (0) 2017.01.24
posted by 생각퍼즐
: