이 게시물은 Database GUI Oracle SQL Developer의 아래 버전 정보를 기준으로 작성되었습니다. Java(TM) 플랫폼 : 1.8.0_321 Oracle IDE : 4.1.5.21.78 |
설명
TO_CHAR() : 숫자 또는 날짜 데이터를 문자 데이터로 변환
문법
TO_CHAR(날짜 데이터(필수), '출력되길 원하는 문자 형태'(필수), 'NLS_DATE_LANGUAGE = language'(선택))
TO_CHAR(숫자 데이터(필수), '출력되길 원하는 문자 형태'(필수))
[날짜 표현 형식 포맷]
CC : 세기
YYYY, RRRR : 연(4자리 숫자)
YY, RR : 연(2자리 숫자)
MM : 월(2자리 숫자)
MON : 월(언어별 월 이름 약자)
MONTH : 월(언어별 월 이름 전체)
DD : 일(2자리 숫자)
DDD : 1년 중 며칠(1~366)
DY : 요일(언어별 요일 이름 약자)
DAY : 요일(언어별 요일 이름 전체)
W : 1년 중 몇 번째 주 (1~53)
사용 예시
-- DATE query 1
SELECT TO_CHAR(SYSDATE, 'YYYY/MM/DD HH24:MI:SS') AS NOW
FROM DUAL;
-- DATE query 2
SELECT SYSDATE
, TO_CHAR(SYSDATE, 'MM') AS MM
, TO_CHAR(SYSDATE, 'MON') AS MON
, TO_CHAR(SYSDATE, 'MONTH') AS MONTH
, TO_CHAR(SYSDATE, 'DD') AS DD
, TO_CHAR(SYSDATE, 'DY') AS DY
, TO_CHAR(SYSDATE, 'DAY') AS DAY
FROM DUAL;
-- DATE query 3
SELECT SYSDATE
, TO_CHAR(SYSDATE, 'MM') AS MM
, TO_CHAR(SYSDATE, 'MON', 'NLS_DATE_LANGUAGE = KOREAN') AS MON_KOR
, TO_CHAR(SYSDATE, 'MON', 'NLS_DATE_LANGUAGE = JAPANESE') AS MON_JPN
, TO_CHAR(SYSDATE, 'MON', 'NLS_DATE_LANGUAGE = ENGLISH') AS MON_ENG
, TO_CHAR(SYSDATE, 'MONTH', 'NLS_DATE_LANGUAGE = KOREAN') AS MONTH_KOR
, TO_CHAR(SYSDATE, 'MONTH', 'NLS_DATE_LANGUAGE = JAPANESE') AS MONTH_JPN
, TO_CHAR(SYSDATE, 'MONTH', 'NLS_DATE_LANGUAGE = ENGLISH') AS MONTH_ENG
FROM DUAL;
-- DATE query 4
SELECT SYSDATE
, TO_CHAR(SYSDATE, 'MM') AS MM
, TO_CHAR(SYSDATE, 'DD') AS DD
, TO_CHAR(SYSDATE, 'DY', 'NLS_DATE_LANGUAGE = KOREAN') AS DY_KOR
, TO_CHAR(SYSDATE, 'DY', 'NLS_DATE_LANGUAGE = JAPANESE') AS DY_JPN
, TO_CHAR(SYSDATE, 'DY', 'NLS_DATE_LANGUAGE = ENGLISH') AS DY_ENG
, TO_CHAR(SYSDATE, 'DAY', 'NLS_DATE_LANGUAGE = KOREAN') AS DAY_KOR
, TO_CHAR(SYSDATE, 'DAY', 'NLS_DATE_LANGUAGE = JAPANESE') AS DAY_JPN
, TO_CHAR(SYSDATE, 'DAY', 'NLS_DATE_LANGUAGE = ENGLISH') AS DAY_ENG
FROM DUAL;
결과
-- DATE query 1
-- DATE query 2
-- DATE query 3
-- DATE query 4
[시간 표현 형식 포맷]
HH24 : 24시간으로 표현한 시간
HH, HH12 : 12시간으로 표현한 시간
MI : 분
SS : 초
AM, PM, A.M., P.M. : 오전 오후 표시
사용 예시
SELECT SYSDATE
, TO_CHAR(SYSDATE, 'HH24:MI:SS') AS HH24MISS
, TO_CHAR(SYSDATE, 'HH12:MI:SS AM') AS HH24MISS_AM
, TO_CHAR(SYSDATE, 'HH:MI:SS P.M.') AS HH24MISS_PM
FROM DUAL;
결과
[숫자 표현 형식 포맷]
9 : 숫자의 한 자리를 의미함(빈 자리를 채우지 않음)
0 : 빈 자리를 0으로 채움을 의미함
$ : 달러($) 표시를 붙여서 출력함
L : L(Locale) 지역 화폐 단위 기호를 붙여서 출력함
. : 소수점을 표시함
, : 천 단위의 구분 기호를 표시함
사용 예시
SELECT SAL
, TO_CHAR(SAL, '$999,999') AS SAL_$
, TO_CHAR(SAL, 'L999,999') AS SAL_L
, TO_CHAR(SAL, '999,999.00') AS SAL_1
, TO_CHAR(SAL, '000,999,999.00') AS SAL_2
, TO_CHAR(SAL, '000999999.99') AS SAL_3
, TO_CHAR(SAL, '999,999,00') AS SAL_4
FROM EMP;
결과
'개발 지식 > [DBMS] Oracle' 카테고리의 다른 글
[Oracle] 형 변환 함수(4) - TO_DATE() (0) | 2022.05.14 |
---|---|
[Oracle] 형 변환 함수(3) - TO_NUMBER() (0) | 2022.05.13 |
[Oracle] 형 변환 함수(1) - 암시적 형 변환, 명시적 형 변환 (0) | 2022.05.11 |
[Oracle] 날짜 관련 함수(5) - ROUND(), TRUNC() (feat. 날짜 데이터) (0) | 2022.05.10 |
[Oracle] 날짜 관련 함수(4) - MONTHS_BETWEEN() (0) | 2022.05.09 |