형변환 함수, Casting Function
- to_char(숫자) : 숫자 > 문자 (암시적 형변환 가능)
- to_char(날짜) : 날짜 > 문자***
- to_number(문자) : 문자 > 숫자 (암시적 형변환 가능)
- to_date(문자) : 문자 > 날짜***
1. to_char(숫자 , [형식문자열])
- 형식 문자열 구성요소
a. 9 : 숫자 1개를 문자 1개로 바꾸는 역할. 빈자리를 스페이스로 치환 > %5d
b. 0 : 숫자 1개를 문자 1개로 바꾸는 역할. 빈자리를 0으로 치환 > %05d
c. $ : 통화 기호 표현
d. L : 통화 기호 표현(Locale)
e. . : 소수점
f. , : 천단위 표기
SELECT
weight,
to_char(weight),
length(weight), -- 암시적 형변환
substr(weight, 1,1), -- 암시적 형변환
weight||'kg'
FROM tblcomedian;

SELECT
to_char(100, '$999'),
to_char(100, 'L999'),
1234567.89,
to_char(1234567.89, '9,999,999'),
ltrim(to_char(567.89, '9,999,999.9')), --최대길이
to_char(123456789123456.789, '9,999,999.9') --공간이 부족하여 에러남
FROM dual;

2. to_char(날짜) : 날짜 > 문자***
- char to_char(컬럼, 형식문자열)
- 형식문자열 구성요소
a. yyyy
b. yy
c. month
d. mm
f. day
g. dy
h. ddd
i. dd
j. d
k. hh
l. hh24
m. mi
n. ss
o. am(pm)
SELECT
sysdate,
to_char(sysdate),
to_char(sysdate, 'yyyy'), --년(4자리)
to_char(sysdate, 'yy'), --년(2자리)
to_char(sysdate, 'month'), --월(풀네임)
to_char(sysdate, 'mon'), --월(약어)
to_char(sysdate, 'mm'), --월(2자리)
to_char(sysdate, 'day'), --요일(풀네임) : 화요일
to_char(sysdate, 'dy'), --요일(약어) : 화
to_char(sysdate, 'ddd'), -- 일(올해의 며칠)
to_char(sysdate, 'dd'), -- 일(이번달의 며칠)
to_char(sysdate, 'd') -- 일(이번주의 며칠) > 요일(숫자 버전)
FROM dual;
SELECT
sysdate,
to_char(sysdate, 'hh'), -- 시(12시간 체계)
to_char(sysdate, 'hh24'), -- 시(24시간 체계)
to_char(sysdate, 'mi'), -- 분
to_char(sysdate, 'ss'), -- 초
to_char(sysdate, 'am'), -- 오전/오후 pm과통일함
to_char(sysdate, 'pm') -- 오전/오후 am과통일함
FROM dual;
SELECT
sysdate,
to_char(sysdate, 'yyyy-mm-dd'),
to_char(sysdate, 'hh24:mi:ss'),
to_char(sysdate, 'yyyy-mm-dd hh24:mi:ss'),
to_char(sysdate, 'day am hh:mi:ss')
FROM dual;

3. to_number(문자)
SELECT
'123' * 2, --암시적 형변환
to_number('123') * 2
FROM dual;

4. to_date(문자, 형식문자열)
SELECT
'2023-08-29', -- 자료형 > 문자
to_date('2023-08-29'),
to_date('2023-08-29', 'yyyy-mm-dd') , -- 'yyyy-mm-dd' 생략 가능
to_date('20230809'),
to_date('20230809', 'yyyymmdd'),
to_date('2023/08/09'),
to_date('2023-08-29 15:28:39', 'yyyy-mm-dd hh24:mi:ss') -- 시간은 반드시 형식 문자열 기입
FROM dual;
