ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Oracle] TO_CHAR 함수 정리
    개발/데이터베이스 2024. 7. 14. 23:00

    날짜, 숫자등의 값을 문자열로 변경

     

    포맷 설명 예제






    "text"
    결과에 포함되는 구두점과 텍스트 SELECT TO_CHAR(SYSDATE, 'YYYYMMDD') FROM DUAL;
    → 20220524

    SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD') FROM DUAL;
    → 2022-05-24

    SELECT TO_CHAR(SYSDATE, 'YYYY/MM/DD') FROM DUAL;
    → 2022/05/24

    SELECT TO_CHAR(SYSDATE, 'YYYY,MM,DD') FROM DUAL;
    → 2022,05,24

    SELECT TO_CHAR(SYSDATE, 'YYYY.MM.DD') FROM DUAL;
    → 2022.05.24

    SELECT TO_CHAR(SYSDATE, 'YYYY;MM;DD') FROM DUAL;
    → 2022;05;24

    SELECT TO_CHAR(SYSDATE, 'YYYY/MM/DD HH24:MI:SS') FROM DUAL;
    → 2022/05/24 17:34:40

    SELECT TO_CHAR(SYSDATE, 'YYYYMMDD') FROM DUAL;
    → 2022년 05월 24일
    DL 날짜 형식 값을 반환 
    ※ NLS_DATE_FORMAT 의해 결정됨
    SELECT TO_CHAR(SYSDATE, 'DL') FROM DUAL;
    → 2022년 5월 24일 화요일
    YYYY
    SYYYY
    년 4자리
    S를 지정하면 기원전의 날짜의 선두에 부의 부호(-)가 붙는다.
    SELECT TO_CHAR(SYSDATE, 'YYYY') FROM DUAL;
    → 2022
    YYY
    YY
    Y
    년 3, 2, 1자리 SELECT TO_CHAR(SYSDATE, 'YY') FROM DUAL;
    → 22 -- 2022년이므로 뒤의 2자리인 22만 반환
    RR 00~49는 2000~2049년
    50~99는 1950~1999년을 의미한다.
    SELECT TO_CHAR(SYSDATE, 'RR') FROM DUAL;
    → 22
    Q 분기(1~4)
    (1:1~3월, 2: 4~6월, 3: 7~9월, 4: 10~12월)
    SELECT TO_CHAR(SYSDATE, 'Q') FROM DUAL;
    → 2 -- 2분기
    MM 월(01~12, 1월 : 01) SELECT TO_CHAR(SYSDATE, 'MM') FROM DUAL;
    → 05
    D 요일(일→1, 토→7)
    ※ 세션의 NLS 지역에 따라 다름
    SELECT TO_CHAR(SYSDATE, 'D') FROM DUAL;
    → 3
    DD 일(1~31) SELECT TO_CHAR(SYSDATE, 'DD') FROM DUAL;
    → 24
    DDD 년의 날(1~366) SELECT TO_CHAR(SYSDATE, 'DDD') FROM DUAL;
    → 144 -- 365일 기준 144일
    HH
    HH12
    시간(1~12) SELECT TO_CHAR(SYSDATE, 'HH') FROM DUAL;
    → 04 
    HH24 시간(0~23) SELECT TO_CHAR(SYSDATE, 'HH24') FROM DUAL;
    → 16
    MI 분(0~59) SELECT TO_CHAR(SYSDATE, 'MI') FROM DUAL;
    → 53
    SS 초(0~59) SELECT TO_CHAR(SYSDATE, 'SS') FROM DUAL;
    → 19
    SSSSS 오전 0시부터 경과한 초(0~86399) SELECT TO_CHAR(SYSDATE, 'SSSSS') FROM DUAL;
    →63417
    FF[1..9] - 밀리세컨드
    - FF 뒤에 1 - 9 숫자를 설정하여 반환되는 날짜/시간 값의 밀리세컨드 부분의 자릿수를 지정 
    ※ 숫자를 지정하지 않으면 6으로 인식
    - 타임스탬프 형식 및 기간 형식에서는 유효하지만 DATE형식에서는 유효하지 않음
    SELECT TO_CHAR(SYSTIMESTAMP, 'SS.FF3') from DUAL;
    → 15.791
    DY 요일(MON, 월 등) SELECT TO_CHAR(SYSDATE, 'DY') FROM DUAL;
    → 화
    DAY 요일(Monday, 월요일 등) SELECT TO_CHAR(SYSDATE, 'DAY') FROM DUAL;
    → 화요일
    MON 달 이름의 약어(1월~12월, JAN~DEC) SELECT TO_CHAR(SYSDATE, 'MON') FROM DUAL;
    → 5월
    MONTH 달 이름 (1~12월, JANUARY~DECEMBER) SELECT TO_CHAR(SYSDATE, 'MONTH') FROM DUAL;
    → 5월
    AM 오전, 오후
    ※ oracle 설정에 따라 AM,PM으로 반환
    SELECT TO_CHAR(SYSDATE, 'AM') FROM DUAL;
    → 오후
    WW 년의 주수(01~53)
    첫 번째 주는 1월 1일로 시작, 7일에 종료
    SELECT TO_CHAR(SYSDATE, 'WW') FROM DUAL;
    → 21 -- 1년 기준 21주
    W 월의 주수(1~5)
    첫 주는 그 달의 1일로 시작, 7일에 종료
    SELECT TO_CHAR(SYSDATE, 'W') FROM DUAL;
    → 4

     

     

    '개발 > 데이터베이스' 카테고리의 다른 글

    [Mysql] Prepared Statement  (0) 2024.09.29
    [Oracle] 테이블, 데이터 복사  (0) 2023.03.05
    [Oracle] 중복 데이터를 찾는 방법  (0) 2023.02.06
    [Oracle] Select 튜닝 순서  (0) 2022.01.24
    [Oracle] RMAN  (0) 2022.01.17

    댓글

Designed by Tistory.