변환함수
- 입력값을 다른 유형의 데이터입의 값으로 변환하여 출력해주는 함수
TO_CHAR(날짜,형식) 날짜 → 문자열
- 날짜 데이터의 요소를 원하는 형식으로 구성하여 문자열로 출력해주는 함수
온전한 영단어 형태의 형식문자 → 문자형태의 온전한 단어들로 출력해준다.
SELECT TO_CHAR(sysdate, 'YEAR, MONTH, DAY') today, SYSDATE FROM dual; |
TODAY |SYSDATE |
-----------------------------+-----------------------+
TWENTY TWENTY-THREE, 12월, 화요일|2023-12-19 15:06:54.000|
SQL> SELECT TO_CHAR(sysdate, 'YEAR, MONTH, DAY') today, SYSDATE 2 FROM dual; |
TODAY SYSDATE
-------------------------------------------------- ---------
TWENTY TWENTY-THREE, DECEMBER , TUESDAY 19-DEC-23
단위의 첫글자를 반복해서 작성하는 형식문자 → 해당 단위를 숫자문자로 가공한 문자열을 출력
SELECT TO_CHAR(sysdate, 'YYYY-MM-DD') today, SYSDATE FROM dual; |
TODAY |SYSDATE |
----------+-----------------------+
2023-12-19|2023-12-19 15:10:30.000|
약어 형태의 형식문자 → 단위의 값을 약어의 스펠링 형태로 출력한다.
SQL> SELECT TO_CHAR(sysdate, 'MON-DY') today, SYSDATE 2 FROM dual; |
TODAY SYSDATE
-------------------------------------------------- ---------
DEC-TUE 19-DEC-23
TO_CHAR(숫자,형식) 숫자 → 문자열
- 형식문자 '9'
'9'는 한자리의 숫자를 가리킨다.
SELECT TO_CHAR(123456, '99999999' ) salary, 123456 numbers FROM dual; |
SALARY |NUMBERS|
---------+-------+
123456| 123456|
- 형식문자 '0'
'0'은 기본적으로 숫자를 가리키지만 형식문자가 변환할 숫자보다 길이가 더 긴 경우 문자'0'으로 자리를 채워 출력해준다.
SELECT TO_CHAR(123456, '00000000' ) salary, 123456 numbers FROM dual; |
SALARY |NUMBERS|
---------+-------+
00123456| 123456|
- '0'은 형식문자에 하나만 포함되어 있어도 동작한다.
SELECT TO_CHAR(123456, '09999999' ) salary, 123456 numbers FROM dual; |
SALARY |NUMBERS|
---------+-------+
00123456| 123456|
- 부동달러기호 '$'
숫자의 자리에 맞게 '$'기호가 붙어서 출력된다.
SELECT TO_CHAR(salary, '$9999999') salary, salary FROM employees; |
SALARY |SALARY|
---------+------+
$24000| 24000|
$17000| 17000|
$17000| 17000|
$9000| 9000|
$6000| 6000|
$4800| 4800|
$4800| 4800|
…
- 구분자 ','
구분자가 필요한 위치에 ','를 위치시키면 해당 자리의 문자열에도 ','를 붙여 출력해준다.
SELECT TO_CHAR(salary, '$9,999,999') salary, salary FROM employees; |
SALARY |SALARY|
-----------+------+
$24,000| 24000|
$17,000| 17000|
$17,000| 17000|
$9,000| 9000|
$6,000| 6000|
…
- 소수점 '.'
'.'를 사용하면 위치에 소수점을 위치시켜 정밀도를 고정 시킬 수 있다.
SELECT TO_CHAR(salary, '$9,999,999.99') salary, salary FROM employees; |
SALARY |SALARY|
--------------+------+
$24,000.00| 24000|
$17,000.00| 17000|
$17,000.00| 17000|
$9,000.00| 9000|
$6,000.00| 6000|
…
TO_NUMBER
- 숫자 형식을 가지고 있는 문자열에서 숫자부분을 추려서 출력할 수 있도록 해주는 함수
- TO_CHAR의 숫자 → 문자열의 형식문자와 동일한 형식문자를 사용하지만,
TO_NUMBER에서는 기존 문자열의 형태를 보면서 형식문자를 작성해주게 되면 숫자부분만 추려서 숫자데이터로 변환하여 출력해준다.
SELECT TO_NUMBER('$24,000.00', '$99,999.99') - 1 FROM dual; |
TO_NUMBER('$24,000.00','$99,999.99')-1|
--------------------------------------+
23999|
TO_DATE
- 문자열에서 날짜요소에 맞게 값을 읽어내어 날짜데이터로 변환해주는 함수
SELECT TO_DATE('09:25:13', 'MM:YY:SS') today FROM dual; |
TODAY |
-----------------------+
2025-09-01 00:00:13.000|
'DB > Oracle' 카테고리의 다른 글
UNION과 UNION ALL의 차이 (0) | 2024.04.03 |
---|---|
[Oracle] Docker ① (0) | 2023.12.28 |
[Oracle] 일반함수 - NVL, COALESCE (0) | 2023.12.20 |
[Oracle] 문자함수 (0) | 2023.12.13 |
[Oracle] 날짜함수 (0) | 2023.12.13 |