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 |
댓글