문법 |
목적 |
CURRENT_TIMESTAMP 함수는 현재 session의 날짜와 시간 정보를 반환한다.
current_timestamp는 time zone까지 출력되지만, localtimestamp는 time zone은 출력되지 않는다.
CURRENT_TIMESTAMP함수는 session time zone의 현재 시각과 시간을
TIMESTAMP WITH TIME ZONE 데이터형의 값으로 반환한다. time zone offset은 SQL 세션의 현재 local 시간을
반영한다. 만약 지정을 생략했다면, 기본은 6이다. 이 함수와 LOCALTIMESTAMP의 차이는 CURRENT_TIMESTAMP는
TIMESTAMP WITh TIME ZONE값을 반영하고, LOCALTIMESTAMP는 TIMESTAMP값을 반환한다.
옵션 인수에서, Precistion은 반환되는 시간값의 소수 초 정밀도를 지정한다.
Time Zone Offset(표준 시간대 오프셋) — 그리니치 표준시(GMT)와 로컬 시간 사이의
차이. 예를 들어, 파리의 표준 시간대 오프셋은 GMT +1이며 뉴욕의 로컬 시간은 GMT –5입니다.
|
See Also: LOCALTIMESTAMP |
예제 |
다음 예제는 CURRENT_TIMESTAMP가 session time zone에 따라 다른것을
설명한다.
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의 반환되는 형태와 일치시키기 위하여 올바른 포맷
mask를 이용한다.
INSERT INTO current_test VALUES (TO_TIMESTAMP_TZ
(CURRENT_TIMESTAMP, 'DD-MON-RR HH.MI.SSXFF PM TZH:TZM'));