Database - Oracle DB/2주차(Database - Oracle DB)

[SQL] DB 스터디 - 15

김야키 2019. 1. 9. 11:31


다른 시간대에서 데이터 관리



1. TIME_ZONE 세션 파라미터

- 다음과 같이 TIME_ZONE을 설정할 수 있음

-> 절대 오프셋

-> 데이터베이스 시간대

-> OS 로컬 시간대

-> 명명된 지역

- OS차원에서 관리되는 시간 정보를 가져올 수 있음

- 해당 DB에 접속하는 수 많은 사용자의 시간대는 다를 수 있음

- 시간대는 사용자가 임의적으로 수정할 수 있음

예)

->

-- 절대 오프셋

ALTER SESSION SET TIME_ZONE = '-05:00';


-- 데이터베이스 시간대

ALTER SESSION SET TIME_ZONE = dbtimezone;


-- OS 로컬 시간대

ALTER SESSION SET TIME_ZONE = local;


-- 지정된 지역의 시간대

ALTER SESSION SET TIME_ZONE = 'America/New_York';




예제 테이블 생성

-- 서로 다른 날짜 타입 컬럼 생성

CREATE TABLE D1(

    C1  DATE,

    C2  TIMESTAMP,

    C3  TIMESTAMP WITH TIME ZONE,

    C4  TIMESTAMP WITH LOCAL TIME ZONE,

    C5  INTERVAL YEAR TO MONTH,

    C6  INTERVAL DAY TO SECOND

);


-- 데이터 입력

INSERT INTO D1

VALUES (

    SYSTIMESTAMP, SYSTIMESTAMP, SYSTIMESTAMP, SYSTIMESTAMP, 

    '1-5', '5 10:11:12'

);




2. TIMESTAMP 데이터 타입

- TIMESTAMP : 년/월/일 시:분:초

- TIMESTAMP WITH TIME ZONE : 년/월/일 시:분:초 시간대

- TIMESTAMP WITH LOCAL TIME ZONE

-> INSERT 시에는 DB시간

-> 현제 SESSION의 시간대 설정을 보고 자동 계산된 결과를 저장 및 출력

-> TIME_ZONE를 '-5:00'을 하면 -14로 변경 됨

- TIMESTAMP의 범위




3. INTERVAL 데이터 타입

- 두 DATETIME값의 차이를 저장하는 데 사용

- 두 가지 간격 유형

-> year-month

-> day-time

- 간격의 자릿수

-> 간격을 구성하는 필드의 실제 부분 집합

-> 간격 수식자에 지정됨

- INTERVAL YEAR TO MONTH : 년/월

- INTERVAL DAY TO SECOND : 일, 시, 분, 초(소수 표시 초)

- INTERVAL의 범위




4. 시간대 정보 출력

- CURRENT_DATE

-> 사용자 세션의 현재 날짜를 반환

-> DATE 데이터 타입

- CURRENT)TIMESTAMP

-> 유저 세션의 현재 날짜와 시간을 반환

-> TIMESTAMP WITH TIME ZONE 데이터 타입

- LOCALTIMESTAMP

-> 사용자 세션의 현재 날짜와 시간을 반환

->  TIMESTAMP 데이터 유형




5. 시간대 함수

- EXTRACT : 입력된 시간대에서 구성 요소를 출력

-> EXTRACT ( YEAR[ MONTH, DAY, HOUR, ...  ] FROM SYSDATE)

-> SYSDATE에서 YEAR 구성 요소 표시

- TZ_OFFSET : 'US/Eastern', 'Canada/Yukon', 'Europe/London' 시간대에 대한 시간대 오프셋을 표시

-> '-04:00', '-07:00', '+01:00' 등등

'Database - Oracle DB > 2주차(Database - Oracle DB)' 카테고리의 다른 글

[SQL] DB 스터디 - 16  (0) 2019.01.10
[SQL] Advanced SQL - TOP-n 질의 활용  (0) 2019.01.09
[SQL] DB 스터디 - 14  (0) 2019.01.09
[SQL] DB 스터디 - 13  (0) 2019.01.09
[SQL] DB 스터디 - 12  (0) 2019.01.08