20230623 (8) SQL 030 : 문자형으로 데이터 유형 변환하기
변환함수
: 데이터 유형을 변환하는 함수
데이터 유형
: 1) 문자형, 2) 숫자형, 3) 날짜형
DESCRIBE emp;
이름 널? 유형
---------------- -------------- ------------
EMPNO NOT NULL NUMBER(4)
ENAME VARCHAR2(10)
JOB VARCHAR2(9)
MGR NUMBER(4)
HIREDATE DATE
SAL NUMBER(7,2)
COMM NUMBER(7,2)
DEPTNO NUMBER(2)
TO_CHAR : 문자형으로 변환
TO_DATE : 날짜형으로 변환
날짜형 -> 문자형
TO_CHAR(날짜, 날짜형식)
날짜 형식에 하기의 키워드를 입력하면, 날짜를 문자로 출력하되 해당 형식으로 출력해줌.
날짜 형식
1. 년도 : RRRR, YYYY, RR, YY
2. 월 : MM, MON
3. 일 : DAY, DY
4. 주 : WW, IW, W
5. 시간 : HH, HH24
6. 분 : MI
7. 초 : SS
8. 요일 : DAY, DY, D
문제108. 오늘날짜, 오늘 요일을 출력하시오.
SELECT sysdate, to_char(sysdate,'day')
FROM dual;
문제110. 이름, 입사일, 입사한 년도, 입사한 달, 입사한 일, 입사한 요일을 출력하시오.
SELECT ename, hiredate, to_char(hiredate,'RRRR'), to_char(hiredate, 'MM'), to_char(hiredate, 'DD'), to_char(hiredate, 'DAY')
FROM emp;
문제111. 1981년도에 입사한 사원들의 이름과 입사일을 출력하시오.
SELECT ename, hiredate
FROM emp
WHERE to_char(hiredate,'RRRR') = 1981;
숫자형 -> 문자형
TO_CHAR(숫자, 형식)
문제116. 이름, 월급을 출력하는데 월급을 출력할 때 천단위 표시를 하시오.
SELECT ename, to_char(sal, '999,999')
FROM emp;
설명 : 9는 해당 자리를 의미하고, 이 자리에 0~9까지 뭐가 와도 관계없다.
SELECT ename, to_char(sal, '$999,999')
FROM emp;
SELECT ename, to_char(sal, 'L999,999')
FROM emp;
$를 함께 기입해서 출력해줄 수도 있다.
원화 표시를 하고 싶으면 L을 함께 기입해주면 된다. (L은 local 화폐 단위가 표시된다.)
원화 표시 제외, 타 국가 화폐단위로 나오게 하고 싶을 경우
시스템 자체 셋팅을 해당 국가로 변경시키거나, 연결 연산자를 통해서 가능하다. (아래 코드 참고)
SELECT ename, '$' || to_char(sal, '999,999')
FROM emp;