본문 바로가기
오라클 게시판/오라클 함수

【오라클(Oracle) SQL 함수】 CURRENT_TIMESTAMP 함수

by 기서무나구물 2018. 11. 15.

포스팅 목차

    o CURRENT_TIMESTAMP

     


    문법

    current_timestamp::=

     


    목적

    CURRENT_TIMESTAMP 함수는 현재 session의 시간대(session time zone)를 기준으로 현재 날짜와 시간 정보를 TIMESTAMP WITH TIME ZONE 데이터 타입으로 반환한다.

    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 값을 반환한다.

    사용자가 선택적으로 지정 하는 Precision 인수는 반환되는 시간 값의 소수 초 정밀도를 지정한다.

    Time Zone Offset(표준 시간대 오프셋) — 그리니치 표준시(GMT)와 로컬 시간 사이의 차이. 예를 들어, 파리의 표준 시간대 오프셋은 GMT +1이며 뉴욕의 로컬 시간은 GMT –5입이다.

    See Also:
    LOCALTIMESTAMP

    참 고 (Oracle, Pandas, R Prog, Dplyr, Sqldf, Pandasql, Data.Table)

     


    관련 함수

    함수명 함수내용
    CURRENT_DATE 현재 세션의 시간대(time zone)를 기준으로 현재 날짜 정보를 Date 데이터 형으로 반환한다.
    CURRENT_TIMESTAMP 현재 session의 시간대를 기준으로 현재 날짜와 시간 정보를 반환한다.
    DBTIMEZONE 데이터 베이스의 시간대(time zone)의 정보를 반환한다.
    LOCALTIMESTAMP 세션 시간대의 현재 날짜와 시각을 timestamp 데이터 유형의 형태로 출력한다.
    SYSTIMESTAMP 데이터 베이스가 설치된 시스템의 fractional 초와 시간대를 포함한 시스템의 날짜를 반환한다.

    [오라클 SQL 함수(Oracle SQL Function) 목록 리스트 링크]

     


    예 제

    다음 예제는 CURRENT_TIMESTAMP 함수가 session time zone에 따라 다른 것을 설명한다.

    Oracle Programming
    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) 는 함수에서 반환되는 값과 일치시켜야 한다. 예를 들어, 다음 테이블을 고려하자.

    Oracle Programming
    CREATE TABLE current_test (col1 TIMESTAMP WITH TIME ZONE);
    
    

     


    다음 문장은 마스크(mask)에서 함수에 의해 반환되는 형식의 TIME ZONE 부분을 포함하지 않아서 실패한다.

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

     


    다음 문장은 올바른 포맷(mask)를 사용하여 CURRENT_TIMESTAMP 함수의 반환되는 형태와 일치하도록 한다.

     

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

     


    오라클 SQL 함수(Oracle SQL Function) 목록 리스트 링크

     

     

    SQL 첫걸음 : 하루 30분 36강으로 배우는 완전 초보의 SQL 따라잡기

    COUPANG

    www.coupang.com

     


    오라클 SQL 함수(Oracle SQL Function) 목록 리스트 링크

     

    [SQL, Pandas, R Prog, Dplyr, SQLDF, PANDASQL, DATA.TABLE] SQL EMP 예제로 만나는 테이블 데이터 처리 방법 리스트 링크 링크

    2023.12 수정

    반응형

    댓글