1. <to_char>
날짜나 숫자 값을 문자 값으로 변환해주는 함수
(1) 날짜 -> 문자
yyyy : 4자리 연도
yy : 2자리 연도
rrrr : 4자리 연도 (2000년 이후 y2k버그를 대비하여 추가된 형식)
rr : 2자리 연도 (2000년 이후 y2k버그를 대비하여 추가된 형식)
year : 영문으로 년도 표시
mm : 2자리 월
mon : 영문 월 약자 표시 (ex. JAN, FEB, MAR, ...)
month : 영문 월 전체 표시(ex. January, February, March, ...)
dd : 2자리 일
day : 요일
ddth : 몇번째 날짜인지 표시 (서수 날짜)
hh : 하루를 12시간으로 표시 (오전이든 오후든 8시)
hh24 : 하루를 24시간으로 표시 (오전이면 8시 오후면 20시)
mi : 분
ss : 초
am : 오전/오후
select sysdate,
to_char(sysdate,'yyyy') 년도1,
to_char(sysdate,'yy') 년도2,
to_char(sysdate,'year') 년도3,
to_char(sysdate,'rrrr') 년도4, -- 2000년 이후 y2k 버그 예상으로 인한 연도 표시
to_char(sysdate,'rr') 년도5, -- 2000년 이후 y2k 버그 예상으로 인한 연도 표시
to_char(sysdate,'mm') 월1, -- 월을 2자리로
to_char(sysdate,'mon') 월2, -- 영문 표시시 약자
to_char(sysdate,'month') 월3,
to_char(sysdate,'dd') 일1,
to_char(sysdate,'day') 요일,
to_char(sysdate,'ddth') 일2, -- 서수형 표기
to_char(sysdate,'hh') 시1, -- 1~12 / 1~12
to_char(sysdate,'hh24') 시2, -- 1~24
to_char(sysdate,'mi') 분,
to_char(sysdate,'ss') 초,
to_char(sysdate,'am') 오전오후
from dual
;
(2) 숫자 -> 문자
select to_char(1234.56,'999999') 숫자1, -- 정수 7자리
to_char(12.3456,'099999') 숫자2, -- 정수 7자리 (빈자리는 0으로)
to_char(12.3456,'$9999.99') 숫자3, -- 화폐 단위, 소수점 이하 2자리
to_char(12.3456,'9999.99') 숫자4, -- 소수점
to_char(1234.3456,'9,999.99') 숫자5, -- ,추가
to_char(1500.50,'$9,999.99') 숫자6 -- 연습
from dual;
2. <to_date>
문자 값을 날짜 값으로 변환해주는 함수
ex. '20201020'라는 문자를 날짜 값으로 변환해주는 함수
select to_date('20201020','yyyymmdd') from dual;
3. <to_number>
문자 값을 숫자 값으로 변환해주는 함수
select to_number('12') + 10 from dual ;
-- '12'는 작은 따옴표에 묶여 문자형인 데이터이다 하지만 to_number로 변환하여 10이라는 숫자와 연산이 가능한
숫자형 데이터로 변환이 된다. 그러나, 오라클에서는 '12'도 묵시적으로 형변환을 해주는 기능이 있어서 변환하지 않아도 숫자 연산이 가능하긴 하다.
'SQL' 카테고리의 다른 글
SQL [9] - GROUP BY와 HAVING (+ ROLL UP, GROUPING SET) (0) | 2021.05.02 |
---|---|
SQL [8] - NVL, DECODE, CASE 조건에 따른 치환 함수 (0) | 2021.05.02 |
SQL [6] - 숫자 함수와 날짜 함수 (0) | 2021.04.28 |
SQL [5] - 문자 함수들 (0) | 2021.04.28 |
SQL [4] - Order by 정렬 문과 집합 연산자 (0) | 2021.04.27 |