개발군싹

[ORACLE DATABASE] 형 변환 함수 본문

DB

[ORACLE DATABASE] 형 변환 함수

개발자군싹 2023. 10. 23. 11:44

ORACLE DATABASE

형변환 함수의 종류

오라클에서는 자동형변환이 잘 이루어 지지만 필요에 의해 강제 형변환해야할 때 형변환 함수를 이용한다.

형변환 예제

1) SYSDATE의 출력값을 TO_CHAR를 이용하여 내가 출력하고자하는 패턴으로 변경하여 출력 가능하다.

SELECT SYSDATE, TO_CHAR(SYSDATE,'YYYY-MM-DD'), TO_CHAR(SYSDATE,'YYYY.MM.DD'), TO_CHAR(SYSDATE,'YYYY.MM.DD HH24:MI:SS')
FROM DUAL;

 

2) EMPLOYEE 테이블에서 직원들의 HIRE_DATE를 년,월,일의 패턴으로 변경하여 출력할 수 있다.

SELECT EMP_NAME, SALARY, TO_CHAR(HIRE_DATE,'YYYY-MM-DD HH24:MI:SS'), TO_CHAR(HIRE_DATE, 'YYYY"년"MM"월"DD"일"')
FROM EMPLOYEE;

3) TO_CHAR 함수를 이용하여 통화를 표시하여 금액에 관련한 정보를 출력시 원하는 패턴으로 출력 가능하다.

 숫자를 문자형으로 변경하기
➡️ 0: 변환 대상값의 자릿수가 지정한 자릿수와 일치하지 않을 때, 값이 없는 자리에 0을 표시하는 패턴
➡️ 9: 변환 대상값의 자릿수가 지정한 자릿수와 일치하지 않을 때, 값이 없는 자리에 표시를 생략하는 패턴
➡️ L: 통화를 표시(LOCALE에 따라 표시)

🔥TO_CHAR 함수를 이용하여 EMPLOYEE 테이블의 부서코드(DEPT_CODE)가 'D5'인 사원들의 급여와 입사날짜를 원하는 출력 형태로 실행.

SELECT EMP_NAME, DEPT_CODE, TO_CHAR(SALARY,'L999,999,999') AS SALARY, TO_CHAR(HIRE_DATE,'YYYY.MM.DD') AS HIRE_DATE
FROM EMPLOYEE
WHERE DEPT_CODE = 'D5';

4) TO_NUMBER를 이용하여 문자를 숫자형으로 변경하기

ORACLE에서 '+' 연산은 문자열 연산처리가 아닌 덧셈 연산으로 작용한다.

'1000' 문자열을 TO_NUMBER 함수를 이용하여 덧셈 연산을 할 수 있다.

SELECT 1000+1000, TO_NUMBER('1,000','999,999')+TO_NUMBER('1,000','999,999'), TO_NUMBER('1,000','999,999')
FROM DUAL;

5) TO_DATE 함수를 이용하여 숫자를 날짜로 변경 / 문자를 날짜로 변경 

SELECT TO_DATE(240201,'YYMMDD'),TO_DATE(20240201,'YYYYMMDD'),TO_DATE(TO_CHAR(000417,'000000'),'YYMMDD') AS 날짜출력
-- 날짜 앞이 000 같이 들어가면 인지를 못하기 때문에 TO_CHAR로 변형 후 TO_DATE로 날짜 패턴에 맞춰 변경
FROM DUAL;