다른 시간대에서 데이터 관리
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 |