SQL/oracle

oracle SQL - TIMESTAMP, INTERVAL

jun.s.gi 2023. 5. 30. 20:18
728x90

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번째 열부터, 주문날짜, 배송 시작 시간, 배송 완료 시간, 교환 가능한 날짜

주문 내용

 

 

하와이 세션 (-10:00)
우리나라 세션 (+09:00)

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

    * 기간을 날짜, 시간, 분, 초로 저장합니다.

 

 

주문 번호 1002번의 배송과 관련된 정보를 보여줍니다.

warranty 테이블의 행이 두 개이므로 1행은 교환기간이 15일 보증기간이 8년

2행은 교환기간이 7일 12시간 30분뒤 보증기간은 5년 3개월

728x90