ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Oracle 함수(Function) - 형 변환 함수
    데이터베이스/Oracle 2020. 11. 11. 11:46
    728x90
    반응형

    형 변환 함수

    형 변환 함수란 날짜 또는 숫자형 데이터를 문자형으로 바꾸어 주거나

    문자형 데이터를 숫자 데이터로 형변환 해준다.

     

    즉, 이렇게 숫자를 문자로, 문자를 날짜로 형변환 하거나

    날짜를 문자로, 문자를 숫자로 형변환 할 수 있다.

    이제 TO_CHAR, TO_DATE, TO_NUMBER을 알아보자!

     

     

    TO_CHAR

    TO_CHAR란 날짜 혹은 숫자형 데이터문자형 데이터변환하여 반환한다.

    - DATE : 문자형으로 변환하려는 날짜형 데이터

    - NUMBER : 문자형으로 변환하려는 숫자형 데이터

    - FORMAT : 문자형으로 변환 시 지정할 출력 형식

     

    FORMAT

    날짜 데이터문자형 데이터로 바꾸기위해선 FORMAT 형식을 알아야 한다.

     

    [ TO_CHAR 예시 ]

    날짜를 문자로 형변환

    SELECT EMP_NAME, 
    TO_CHAR(HIRE_DATE, 'YYYY-MM-DD'), -- 년도 4자리, 월, 일표현 2자리
    TO_CHAR(HIRE_DATE, 'YY/MON, DAY, DY') -- 년도표현 2자리
    FROM EMPLOYEE;
    

     

    숫자를 문자로 형변환

    SELECT EMP_NAME,
    TO_CHAR(SALARY, ‘L999,999,999’), -- 오른쪽 정렬, 빈칸 공백
    TO_CHAR(SALARY, ‘000,000,000’) -- 오른쪽 정렬, 빈칸 0 채움
    FROM EMPLOYEE;

     

    9와 0은 둘다 숫자로 채우는 FORMAT이다.

    9빈칸 / 0빈칸에 0을 채워준다.

    하지만, 설정한 포맷의 범위를 넘어서면 값이 모두 #으로 조회된다.

     

    L을 들어가면 현재 설정된 나라화페단위를 표시해준다.

    다른 나라의 화폐단위를  표시하고 싶으면 L대신 다른나라의 화폐단위를 적는다.

    예) '$99,999'

     

     

     

     

    TO_DATE

    TO_DATE숫자 혹은 문자형 데이터날짜형 데이터로 변환하여 반환한다.

    - CHARACTER : 날짜형으로 변환하려는 문자형 데이터

    - NUMBER : 날짜형으로 변환하려는 숫자형 데이터

    - FORMAT : 날짜형으로 변환 시 지정할 출력 형식

     

    [ TO_DATE 예시 ]

    - EMPLOYEE테이블에서 2000년도 이후에 입사한 사원의 사번, 이름, 입사일 조회

    SELECT EMP_NO, EMP_NAME, HIRE_DATE
    FROM EMPLOYEE
    WHERE HIRE_DATE > TO_DATE(20000101, ‘YYYYMMDD’);

    TO_DATE를 이용한 변환시 데이터의 FORMAT 중에서  YYRR의 차이를 알아보자.

    YYRR차이점

    YY현재 세기(21C == 20XX년대)를 적용 한다.

    RR란 읽어들인 값이 50년 이상이면 이전세기(2C = 19XX년대)를 적용 한다.

     

     

    TO_NUMBER

    TO_NUMBER란 날짜 혹은 문자형 데이터를 숫자형 데이터로 변환하여 반환한다.

    - CHARACTER : 숫자형으로 변환하려는 문자형 데이터

    - FORMAT : 날짜형으로 변환 시 지정할 출력 형식

     

    [ TO_NUMBER 예시 ]

    SELECT TO_NUMBER('1,000,000', '99,999,999') -- 문자열 타입을 숫자로 형변환
    - TO_NUMBER('550,000', '999,999') -- 문자열 타입을 숫자로 형변환
    FROM DUAL;

    728x90
    반응형
Designed by Tistory.