[SQL] 변환함수 TO_CHAR

·2025년 7월 2일
0

SQL

목록 보기
46/126

💡 데이터 유형 3가지

  1. 문자형
  2. 숫자형
  3. 날짜형

💡 변환 함수 3가지

  1. to_char : 숫자나 날짜를 문자형으로 형변환하는 함수
  2. to_number : 문자를 숫자로 형변환하는 함수
  3. to_date : 문자를 날짜로 형변환하는 함수

문제1. 오늘이 무슨 요일인지 출력하시오

select to_char(sysdate ,'day')
 from dual;
 
-- 수요일

💡 문법: to_char( 날짜, '포멧')
--> 날짜를 문자로 형변환하면서 해당 '포멧' 으로 출력해줌

💡

포멧형식:

select to_char( sysdate, 'RRRR') from dual;	-- 2025
select to_char( sysdate, 'RR') from dual;	-- 25
select to_char( sysdate, 'YYYY') from dual;	-- 2025
select to_char( sysdate, 'YY') from dual;	-- 25
select to_char( sysdate, 'MON') from dual;	-- 7월
select to_char( sysdate, 'MM') from dual;	--07
select to_char( sysdate, 'DAY') from dual;	-- 수요일
select to_char( sysdate, 'DY') from dual;	-- 수
select to_char( sysdate, 'D') from dual;	-- 4

💡

일   월   화   수   목   금   토
1    2    3    4   5    6    7

문제2. 이름, 입사일, 입사한 년도를 4자리로 출력하시오

select ename, hiredate, to_char(hiredate, 'RRRR')
 from emp;

문제3. 1981년도에 입사한 사원들의 이름과 입사일과 입사한 년도를 출력하시오

select ename, hiredate, to_char(hiredate,'RRRR')
 from emp
 where to_char(hiredate,'RRRR') = '1981';

문제4. 5월달에 입사한 사원들의 이름과 입사일을 출력하시오

select ename, hiredate
 from emp
 where to_char(hiredate, 'MM') = '05';

문제5. 이름, 입사일, 입사한 요일을 출력하시오

select ename, hiredate, to_char(hiredate, 'DAY')
 from emp;

문제6. 000의 태어난 요일이 어떻게 되는지 출력하시오

select ename, to_char(birth, 'day')
 from emp21
 where ename = '000';

문제7. emp21 테이블에서 화요일에 태어난 학생들의 이름과 생일과 요일을 출력하시오

select ename, birth, to_char(birth, 'day')
 from emp21
 where to_char(birth, 'day') = '화요일';

⭐ 문제8. (7년차 개발자의 요청 SQL) emp21 테이블에서 이름과 태어난 요일을 출력하는데 월화수목금토일순으로 정렬해서 출력하시오

select ename, to_char(birth, 'dy')
 from emp21
 order by to_char(birth-1, 'd');

문제9. 이름, 입사일, 입사한 년도, 입사한 달, 입사한 일을 출력하시오

select ename, hiredate, to_char(hiredate,'RRRR'),
                        to_char(hiredate,'MM'),
                        to_char(hiredate,'dd')
from emp;


-- 또는


select ename, hiredate, extract(year from hiredate),
                        extract(month from hiredate),
                        extract(day from hiredate)
 from emp;

extract
💡 추출할 수 있는 키워드: year, month, day, hour, minute, second

문제10. 오늘 날짜의 요일을 출력하시오

select to_char(sysdate, 'day')
 from dual;

문제11. (오라클 정규교재 난이도 상) 오늘부터 100달뒤의 날짜의 요일을 출력하시오

select to_char(add_months(sysdate,100), 'day')
 from dual;

📌 숫자형을 문자형으로 변환하는 방법

문제12. 이름과 월급을 출력하는데 월급을 출력할때 천단위를 부여해서 출력하시오

select ename, to_char(sal, '$999,999')
 from emp;

💡 9 --> 자리수
이 자리에 0~9 중에 어떠한 숫자가 와도 상관 X

to_char(sal, '999,999')

문제13. 이름, 월급*12000000 을 출력하는데 금액 단위를 읽기 편하도록 출력하시오

select ename, to_char(sal*12000000, '$99,999,999,999')
 from emp;

💡 $대신 L 쓰면 L이 local 화폐단위를 의미해서 나옴

0개의 댓글