oracle SQL - TIMESTAMP, INTERVAL
1. TIMESTAMP 관련 타입
- TIMESTAMP (세션에 상관없이 시, 분, 초까지 저장)
- TIMESTAMP WITH TIME ZONE (클라이언트 시간대 기록)
- TIMESTAMP WITH LOCAL TIME ZONE (시차 계산)
SYSTIMESTAMP 함수는 DB 서버가 있는 지역의 현재 시간을 반환
CURRENT_TIMESTAMP 함수는 클라이언트 지역의 현재 시간 반환
ALTER SESSION SET TIME_ZONE = '+-00:00';
위 문장을 실행하여 세션의 시간대를 바꾸면 SYSTIMESTAMP는 바뀌지 않지만 CURRENT_TIMESTAMP 함수는 영국 그리니치 천문대 기준 설정한 값보다 빠르거나(+) 느린(-) 시간대로 나옵니다.
참고 : 2번째 열부터, 주문날짜, 배송 시작 시간, 배송 완료 시간, 교환 가능한 날짜
2열은 현재 세션에 맞게 설정된 형식으로 출력됩니다.
3열의 데이터 타입은 TIMESTAMP입니다.
- 세션에 설정된 값과 상관없이 시간까지 기록합니다.
4열의 데이터 타입은 TIMESTAMP WITH TIME ZONE입니다.
- 클라이언트의 시간대 정보도 저장합니다.
5열의 데이터 타입은 TIMESTAMP WITH LOCAL TIME ZONE입니다.
- 클라이언트 시간대와 DB 서버 시간대 차이를 계산하여 보여줍니다.
- 위 예시에는 19시간을 더한 값을 보여줍니다.
2. INTERVAL
- INTERVAL YEAR TO MONTH
* 특정 datetime 값으로 부터의 연도와 월의 차이를 나타낼 때 사용
- INTERVAL DAY TO SECOND
* 기간을 날짜, 시간, 분, 초로 저장합니다.
warranty 테이블의 행이 두 개이므로 1행은 교환기간이 15일 보증기간이 8년
2행은 교환기간이 7일 12시간 30분뒤 보증기간은 5년 3개월