TO_CHAR는 숫자나 날짜 등의 데이터를 문자로 바꿔주는 변환함수로 특정한 형식으로 출력 결과를 내고 싶을 때 많이 사용한다. 
1. 날짜 데이터를 특정 형식으로 출력되게 하기
SELECT -- 연도만 나오게
        to_char(SYSDATE, 'YYYY') 
       --연도 월 일 시간 
       ,to_char(SYSDATE, 'YYYY MM DD HH:MI:SS') 
       --연도-월-일
       ,to_char(SYSDATE, 'YYYY-MM-DD')
       --연도월일
       ,to_char(SYSDATE, 'YYMMDD')       
       -- 날짜 
       ,to_char(SYSDATE, 'day') 
       -- 요일을 1~7 중 숫자로 반환
       ,to_char(SYSDATE, 'd') 
FROM dual;
위의 쿼리문은 아래와 같이 출력된다. 각각의 출력 결과를 보면 어떤 식으로 다른지를 알 수 있다.

이렇게 변환한 to_char는 사칙연산도 가능한데 이를 가지고 아래와 같이 활용할 수 있다.
문제 1 : 현재 일자를 기준으로 사원테이블(employees)의 입사일자를 참조해서 근속년수가 23년 이상인 사원을 출력하시오
위의 문제는 아래와 같이 풀이할 수 있다. 
SELECT employee_id
       ,emp_name
       ,hire_date
       ,to_char(SYSDATE, 'YYYY') - TO_char(hire_date,'YYYY') as 근속년수    
FROM employees
WHERE to_char(SYSDATE, 'YYYY') - TO_char(hire_date,'YYYY') >= 23 ;
이를 실행하면 아래와 같은 결과가 나온다.

문제 2 : CUSTOMERS 테이블에서 CUST_YEAR_OF_BIRTH 를 활용하여 80년대 이후 출생자를 출력하시오. 
SELECT cust_name
       ,cust_year_of_birth
       ,to_char(SYSDATE, 'YYYY') - TO_char(cust_year_of_birth) as 나이
       ,cust_gender  
FROM customers
WHERE TO_char(cust_year_of_birth) >= 1980
order by 나이, cust_name ;이를 실행하면 아래와 같은 결과가 나온다.

2. 숫자 데이터를 특정 형식으로 출력되게 하기
DB에서 금액 데이터를 가지고 올 때 to_char로 형식을 맞춰서 가져올 수도 있다. 
SELECT -- 금액이 나오게
        to_char(20600, '999,999')   || '원'
        ,to_char(245120600, '999,999,999')   || '원'
       -- 로마자로 변환        
       ,to_char(123, 'RN') 
FROM dual;
위의 쿼리문은 아래와 같이 출력된다.

'DB' 카테고리의 다른 글
| != 과 <> 의 차이와 ANSI SQL (0) | 2022.11.22 | 
|---|---|
| 오라클 : 집계함수 COUNT, SUM, AVG, MAX, MIN (0) | 2022.08.19 | 
| 오라클 : 글자를 자르거나 바꿔주는 함수 TRIM, SUBSTR, REPLACE (0) | 2022.08.10 | 
| 오라클 : 문자 함수로 대소문자 처리하기 : LOWER, UPPER, INITCAP (0) | 2022.08.09 | 
| 오라클 : 숫자 함수로 소수점 처리하기 : ABS, ROUND, CEIL, TRUNC (0) | 2022.08.01 | 
 
										
									 
										
									 
										
									 
										
									
댓글