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

【오라클(Oracle) SQL 함수】 TO_CHAR (datetime) 함수

by 기서무나구물 2021. 10. 21.

포스팅 목차

    TO_CHAR (datetime)

     


    문법

     

    to_char_date::=

     


    목적 

    TO_CHAR(datetime) 함수는 datetime 또는 날짜의 구간 값, TIMESTAMP, TIME 구역(ZONE)을 포함하는 TIMESTAMP, TIMESTAMP WITH LOCAL TIME ZONE,INTERVAL DAY TO SECOND 또는 INTERVAL YEAR TO MONTH 데이터 타입의 datetime 또는 구간 간격(interval value) 값을 날짜 형식 fmt 인수에서 지정한 형식의 VARCHAR2 데이터 타입의 문자열 값으로 변환(문자형 날짜 함수)한다. 날짜형 데이터를 문자열로 변환하는 함수이다.

     

    만약 fmt를 생략한다면, date 는 다음과 같이 VARCHAR2 형태의 값으로 변환한다.

    • date 값은 기본적인 date 형식의 값으로 변환한다.
    • TIMESTAMP 와 TIMESTAMP WITH LOCAL TIME ZONE 형태의 값은 기본 timestamp 형식의 값으로 변환한다.
    • TIMESTAMP WITH TIME ZONE 형식의 값은 기본 timestamp with time zone 형식의 값으로 변환한다.
    • 구간 간격(Interval values)의 값은 구간 간격 리터럴의 수치형 표현으로 변환한다.

    datetime 형식에 관한 정보는 "Format Models "를 참조.

    'nlsparam' 인수에는 월과 일자의 이름 및 약칭으로 반환되는 언어를 지정한다. 이 인수는 다음과 같은 형태이다.

    'NLS_DATE_LANGUAGE = language'

    만약 'nlsparam' 인수를 생략하면, 이 함수는 세션의 기본적인 일자를 사용한다.

     


    패키지 함수 비교 - Oracle, Pandas, R Prog, Dplyr, Sqldf, Pandasql, Data.Table

     


    관련 함수

    함수명 함수내용
    CAST 데이터 형식이나 collection 형식을 다른 데이터 형식이나 collection 형식으로 변환한다.
    CONVERT 데이터 베이스 문자 세트를 다른 문자 세트의 문자열로 변환한다.
    TO_CHAR (character) NCHAR, NVARCHAR2, CLOB, NCLOB 데이터를 데이터 베이스 문자 세트로 변환한다.
    TO_CHAR (datetime) 날짜형 데이터를 문자열로 변환하는 함수이다.
    TO_CHAR (number) 수치형 데이터를 문자열로 변환하는 함수이다.
    TO_CLOB LOB열(LOB column)에 존재하는 LCLOB 값 또는 다른 문자열의 값을 CLOB 타입으로 형 변환 작업을 수행한다.
    TO_DATE 문자형 날짜 데이터를 날짜형 데이터로 변환하는 함수이다.
    TO_NCHAR (character) 문자열,CLOB,NCLOB 값을 자국어 문자 세트(National character set)로 변환한다.
    TO_NCHAR (datetime) 날짜 데이터형태의 데이터를 데이터베이스 문자 세트(Database character set) 형태에서 자국어 문자 세트(National character set) 형태로 변환한다.
    TO_NCHAR (number) 수치형 인수 n을 자국어 문자 세트(National character set) 형태의 문자열로 변환한다.
    TO_NCLOB LOB열 또는 다른 문자열에 존재하는 CLOB값을 NCLOB값으로 변환한다.
    TO_NUMBER 인수 expr을 NUMBER 데이터형의 값으로 변환한다.
    UNISTR 유니코드 형태의 텍스트 문자열을 인수로 입력받아서 자국어 문자 세트(National character set) 형태로 인코딩 된 문자열을 반환한다.

     


    예제

    다음 예제는 이 테이블을 이용한다.

    Oracle Program
    CREATE TABLE date_tab (
       ts_col      TIMESTAMP,
       tsltz_col   TIMESTAMP WITH LOCAL TIME ZONE,
       tstz_col    TIMESTAMP WITH TIME ZONE);

     


    다음 예제는 TO_CHAR 를 다른 TIMESTAMP 데이터 형식으로 적용한 결과를 보여준다. TIMESTAMP WITH LOCAL TIME ZONE 열에 대한 결과는 세션 time zone에 민감하고, 이것에 반하여 TIMESTAMP와 TIMESTAMP WITH TIME ZONE 열에 대한 결과는 세션 time zone(시간대)에 영향받지 않는다.

    Oracle Program
    ALTER SESSION SET TIME_ZONE = '-8:00';
    
    INSERT INTO date_tab VALUES (  
       TIMESTAMP'1999-12-01 10:00:00',
       TIMESTAMP'1999-12-01 10:00:00',
       TIMESTAMP'1999-12-01 10:00:00');
    
    INSERT INTO date_tab VALUES (
       TIMESTAMP'1999-12-02 10:00:00 -8:00', 
       TIMESTAMP'1999-12-02 10:00:00 -8:00',
       TIMESTAMP'1999-12-02 10:00:00 -8:00');
    
    SELECT TO_CHAR(ts_col, 'DD-MON-YYYY HH24:MI:SSxFF'),
           TO_CHAR(tstz_col, 'DD-MON-YYYY HH24:MI:SSxFF TZH:TZM')
    FROM date_tab;

     

    Results
    TO_CHAR(TS_COL,'DD-MON-YYYYHH2 TO_CHAR(TSTZ_COL,'DD-MON-YYYYHH24:MI:
    ------------------------------ -------------------------------------
    01-DEC-1999 10:00:00           01-DEC-1999 10:00:00.000000 -08:00
    02-DEC-1999 10:00:00           02-DEC-1999 10:00:00.000000 -08:00

     


     

    Oracle Program
    SELECT SESSIONTIMEZONE, 
           TO_CHAR(tsltz_col, 'DD-MON-YYYY HH24:MI:SSxFF')
    FROM date_tab;

     

    Results
    SESSIONTIMEZONE  TO_CHAR(TSLTZ_COL,'DD-MON-YYYY
    ---------------  ------------------------------
    -08:00           01-DEC-1999 10:00:00.000000
    -08:00           02-DEC-1999 10:00:00.000000

     


     

    Oracle Program
    ALTER SESSION SET TIME_ZONE = '-5:00';
    SELECT TO_CHAR(ts_col, 'DD-MON-YYYY HH24:MI:SSxFF'),
           TO_CHAR(tstz_col, 'DD-MON-YYYY HH24:MI:SSxFF TZH:TZM')
    FROM date_tab;

     

    Results
    TO_CHAR(TS_COL,'DD-MON-YYYYHH2 TO_CHAR(TSTZ_COL,'DD-MON-YYYYHH24:MI:
    ------------------------------ -------------------------------------
    01-DEC-1999 10:00:00.000000    01-DEC-1999 10:00:00.000000 -08:00
    02-DEC-1999 10:00:00.000000    02-DEC-1999 10:00:00.000000 -08:00

     


     

    Oracle Program
    SELECT SESSIONTIMEZONE,
           TO_CHAR(tsltz_col, 'DD-MON-YYYY HH24:MI:SSxFF') 
    FROM date_tab;

     

    Results
    SESSIONTIMEZONE           TO_CHAR(TSLTZ_COL,'DD-MON-YYYY
    ------------------------- ------------------------------
    -05:00                    01-DEC-1999 13:00:00.000000
    -05:00                    02-DEC-1999 13:00:00.000000

     

     


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

     

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

    2023.12 수정

    반응형

    댓글