💻Programming/Oracle

[Oracle/ 오라클] 변환 함수

horang_dev 2021. 3. 16.

 변환함수 

 - 자료형의 변환을 담당하는 함수 

 - CAST, TO_CHAR, TO_NUMBER, TO_DATE

 

1. CAST (expr AS TYPE)

   - expr로 표현된 값을 TYPE 형식으로 변환

 

ex) 회원테이블의 회원 마일리지(숫자형식)를 문자형식으로 변환

    SELECT mem_id, 
    	   mem_name, 
           mem_mileage,
           CAST(mem_mileage AS CHAR(10))
      FROM member;
          

-- 출력 결과 --


2. TO_CHAR ( c | d | n [, fmt] )

   - 날짜, 숫자, 문자 자료를 지정된 형식의 문자열 자료로 변환

 -------------------------------------------------------------------------
     형식지정문자                                      의미
 -------------------------------------------------------------------------
    AD, BC, CC                                          세기    
    YYYY, YYY, YY, Y                                   년도
    MONTH, MON, MM, RM                        월
    W, WW, RW                                        주차
    Q                                                      분기
    DD, DDD, J                                          일
    DAY, DY, D                                          주의 요일
    AM, PM, A.M, P.M                                 오전오후
    HH, HH12, HH24                                   시간
    MI                                                      분
    SS, SSSSS                                             초
    "문자열"                                     사용자 정의 문자열 
 -------------------------------------------------------------------------

 

ex)

    SELECT TO_CHAR(SYSDATE, 'AD YY')
      FROM DUAL;

-- 출력 결과 --

ex) DD : 해당 월에서 경과된 날짜

    SELECT SYSDATE,
           TO_CHAR(SYSDATE, 'YYYY-DD')
      FROM DUAL;

-- 출력 결과 --


** 숫자 변환 문자열

------------------------------------------------------------------------------------------------------------------
        형식 문자열                                                     의미
------------------------------------------------------------------------------------------------------------------
           9                              대응되는 데이터가 유효숫자이면 원본자료를 출력하고 
                                          대응되는 데이터가 무효의 0이면 공백처리 -- 1 + '99999' => '     1'
           0                              대응되는 데이터가 유효숫자이면 원본자료를 출력하고 
                                          대응되는 데이터가 무효의 0이면 '0'을 출력 -- 1 + '00000' => '00001'
          $,L(l)                          화폐기호를 출력 -- L : location 정보에 따라 화폐 기호 출력
          MI                             데이터가 음수인 경우 우측에 '-' 부호 출력 (반드시 형식문자열 맨 우측에 기술)
          PR                             데이터가 음수인 경우 '-' 부호 대신 '< >'로 묶어 출력
          ,(comma)                     3자리마다 자리점 출력
          .(dot)                          소숫점 출력
------------------------------------------------------------------------------------------------------------------

 

ex) 상품테이블에서 거래처가 대우전자('P10201')의 제품정보를 조회하시오.

      Alias는 상품명, 매입가, 판매가, 할인판매가, 할인판매이익이며 할인판매이익은 할인판매가 - 매입가 이고,

      음수인 경우 < >안에 출력하시오.

    SELECT prod_name AS 상품명,
           TO_CHAR(prod_cost, '9,999,999') AS 매입가,
           TO_CHAR(prod_price, '9,999,999') AS 판매가,
           TO_CHAR(prod_sale, '9,999,999') AS 할인판매가,
           TO_CHAR(prod_sale-prod_cost, '9,999,999') AS 할인판매이익
      FROM prod
     WHERE UPPER(prod_buyer) = 'P10201';

-- 출력 결과 --

 

3. TO_NUMBER ( c [, fmt] )

   - 주어진 문자열 c (숫자형식)를 숫자로 변환

   - fmt는 TO_CHAR 형식과 동일하나 모두 적용되지는 않음

 

 


4. TO_DATE ( c [, fmt] )

   - 날짜 형식의 문자열 c에 저장된 자료를 날짜형으로 변환

   - fmt는 TO_CHAR 형식과 동일

    SELECT TO_DATE('20051001')
      FROM DUAL;

-- 출력 결과 --

반응형

댓글