- 데이터 타입(날짜,숫자,문자)을 변환하기 위해 사용
to_char
** 사용법 : to_char(대상[, 포맷])
- 대상 : 날짜, 숫자
1. 숫자 -> 문자
case1) 단순 문자 타입 변경
select nvl(to_char(comm),'보너스없음')
from emp;
case2) 숫자 형태 변경
- 숫자 자리수 전달 시 9 또는 0 사용
- 9는 부족한 자리수를 공백으로, 0 사용 시 0으로 채움
ex) 1,000 $1000 1000.00
select sal,
to_char(sal,'99999'), -- ' 800'
to_char(sal,'00000'), -- 00800
to_char(sal,'09999'), -- 00800
to_char(sal,'9,999') -- 1,600
from emp;
select sal,
to_char(sal, '$9999'),
to_char(sal, '9999.99')
from emp;
select sal, sal||'\'
from emp;
select pay,
to_char(pay, '9,999'), -- ######(원본보다 더 작은 자리수 전달 시 ####으로 출력됨)
trim(to_char(pay, '9,999,999,999'))
from emp2;
2. 날짜 -> 문자
- 날짜의 포맷 변경 또는 일부 추출 결과는 문자타입으로 리턴됨
** 날짜 포맷
- yyyy / yy : 연도
- rrrr / rr : 연도
- mm : 월
- dd : 일
- hh24, hh : 시간
- mi : 분
- ss : 초
- month / mon : 월(글자)
- day : 요일(글자)
- ddth, ddspth : 일자에 대한 서수식 표현
select sysdate,
to_char(sysdate,'yyyy') as year1,
to_char(sysdate,'yy') as year2,
to_char(sysdate,'mm') as month,
to_char(sysdate,'dd') as day
from dual;
alter session set nls_date_language = 'american';
select sysdate,
to_char(sysdate,'MONTH') as month1,
to_char(sysdate,'mon') as month2,
to_char(sysdate,'day') as 요일,
to_char(sysdate,'ddth') as "일(서수)",
to_char(sysdate,'ddspth') as "일(서수)"
from dual;
예제) emp에서 각 직원의 이름, 부서번호, 입사일 출력
단, 입사일은 월-일-년 순서로 출력
select ename, deptno, hiredate,
to_char(hiredate, 'mm-dd-yyyy') as hiredate2
from emp;
'SQL' 카테고리의 다른 글
12. 그룹함수(집계함수) (1) | 2024.10.18 |
---|---|
11.변환함수(2) (1) | 2024.10.18 |
9. 날짜함수 (1) | 2024.10.18 |
8. 일반함수(2), 숫자함수 (0) | 2024.10.18 |
7. 일반함수(1) (1) | 2024.10.16 |