본문 바로가기

[오라클 레퍼런스 함수] CURRENT_TIMESTAMP - 현재 날짜와 시간을 TIMESTAMP WITH TIME ZONE 타입으로 반환

by ㅇㅍㅍ 2023. 8. 3.
[오라클 레퍼런스 함수] CURRENT_TIMESTAMP - 현재 날짜와 시간을 TIMESTAMP WITH TIME ZONE 타입으로 반환
728x90

CURRENT_TIMESTAMP

 

구문

CURRENT_TIMESTAMP [ (precision) ]

 

목적

CURRENT_TIMESTAMP 함수는 세션 타임존에 따른 현재 날짜와 시간을 TIMESTAMP WITH TIME ZONE 데이터 타입으로 반환합니다. 타임존 오프셋은 SQL 세션의 현재 로컬 시간을 반영합니다. precision을 지정하지 않으면 기본값은 6입니다. 이 함수와 LOCALTIMESTAMP의 차이점은 CURRENT_TIMESTAMPTIMESTAMP WITH TIME ZONE 값을 반환하고 LOCALTIMESTAMPTIMESTAMP 값을 반환한다는 점입니다.

선택적 인수에서 precision은 반환되는 시간 값의 소수 초 정밀도를 지정합니다.

 

참고:

LOCALTIMESTAMP

 

예제

다음 예제는 CURRENT_TIMESTAMP가 세션 타임존에 민감하다는 것을 보여줍니다:

ALTER SESSION SET TIME_ZONE = '-5:0';
ALTER SESSION SET NLS_DATE_FORMAT = 'DD-MON-YYYY HH24:MI:SS';
SELECT SESSIONTIMEZONE, CURRENT_TIMESTAMP FROM DUAL;

SESSIONTIMEZONE CURRENT_TIMESTAMP
--------------- ---------------------------------------------------
-05:00          04-APR-00 01.17.56.917550 PM -05:00

ALTER SESSION SET TIME_ZONE = '-8:0';
SELECT SESSIONTIMEZONE, CURRENT_TIMESTAMP FROM DUAL;

SESSIONTIMEZONE CURRENT_TIMESTAMP
--------------- ----------------------------------------------------
-08:00          04-APR-00 10.18.21.366065 AM -08:00

 

CURRENT_TIMESTAMP를 형식 마스크(mask)와 함께 사용할 때, 형식 마스크(mask)가 함수에 의해 반환된 값과 일치하도록 주의해야 합니다. 예를 들어, 다음과 같은 테이블을 고려해 봅시다:

CREATE TABLE current_test (col1 TIMESTAMP WITH TIME ZONE);

 

다음 문장이 실패하는 이유는 형식 마스크(mask)가 함수에 의해 반환된 값의 TIME ZONE 부분을 포함하지 않기 때문입니다:

INSERT INTO current_test VALUES
  (TO_TIMESTAMP_TZ(CURRENT_TIMESTAMP, 'DD-MON-RR HH.MI.SSXFF PM'));

 

다음 문장은 CURRENT_TIMESTAMP의 반환 유형과 일치하는 올바른 형식 마스크를 사용합니다:

INSERT INTO current_test VALUES
  (TO_TIMESTAMP_TZ(CURRENT_TIMESTAMP, 'DD-MON-RR HH.MI.SSXFF PM TZH:TZM'));

 


출처: 오라클 레퍼런스

원문 링크: Oracle CURRENT_TIMESTAMP 함수 문서

 

반응형

댓글