TO_CHAR 함수

DB 2009. 6. 2. 13:52

숫자, 날짜, 문자열을 지정한 형식의 VARCHAR2 문자열로 변환하는 함수이다.


1. 날짜 형식을 변환하는 경우

   사용법> TO_CHAR(date, 'fmt')

   예> TO_CHAR(hiredate, 'RR/MM/DD')  => 81/11/17

   특정 포맷(fmt)형식으로 출력할 수 있다.


   <날짜 포맷 형식>

  

 구성 요소

 설명

 SCC or CC  세기 : BC 날짜에는 _S를 붙인다.
 Years in dates YYYY or SYYYY  년 : BC 날짜에는 _S를 붙인다.
 YYY or YY of Y  년의 마지막 3 또는 2 또는 1자리 수
 Y, YYY  콤마가 있는 년
 IYYY, IYY, IY, I  ISO 표준에 바탕을 둔 4, 3, 2 또는 1자리 수
 SYSER or YEAR

 문자로 표현된 년;

 BC날짜에는 _S를 붙인다.

 BC or AD  BC / AD 지시자
 B.C or A.D  .이 있는 BC/AD 지시자
 Q  년의 4분의 1 (Quarter)
 MM  두 자리 값의 월(숫자)
 MONTH  월의 Full Name
 MON  세 자리의 약어로 된 월 이름
 RM  로마 숫자 월
 WW or W  년이나 월의 주
 DDD or DD or D  년, 월 또는 주의 일
 DAY  요일의 Full Name
 DY  세 자리 약어로 된 요일 이름
 J

 Julian day;

 BC4713년 12월 31일 이후의 요일 수


   <시간 포맷 형식>

 구성 요소

 설명

 AM or PM  정오 지시자
 A.M or P.M  .이 있는 정오 지시자
 HH or HH12 or HH24  하루 중 시간 (1~12, 0~23)
 MI  분(0~59)
 SS  초(0~59)
 SSSSS  자정 이후의 초 (0~86399)


   <기타 포맷 형식>

 구성 요소

 설명

 / . ,  사용 문자가 결과에 다시 나타난다.
 "of the"  인용 부호 내의 문자가 결과에 함께 출력


   <숫자에 영향을 주는 접미사>

 구성 요소

 설명

 TH  서수 (DDTH ==> 4TH)
 SP  명시한 수 (DDSP ==> FOUR)
 SPTH or THSP  명시한 서수 (DDSPTH ==> FOURTH)


   문제> EMP 테이블에서 10번 부서 중 입사 일자를 '01/05/1981'과 '1998년 1월 1일'의 형태로

           출력하여라.

      SELECT ename, hiredate, TO_CHAR(hiredate, 'DD/MM/YYYY') eng, TO_CHAR

      (hiredate, 'yyyy"년" mm"월" dd"일"') kor
      FROM emp
      WHERE deptno = 10
      ORDER BY hiredate DESC;

     

      ENAME                          HIREDATE ENG             KOR
      ------------------------------ -------- --------------- ---------------
      MILLER                         82/01/23 23/01/1982      1982년 01월 23일
                                                    

      KING                           81/11/17 17/11/1981      1981년 11월 17일
                                                       

      CLARK                          81/06/09 09/06/1981      1981년 06월 09일
                                                       

2. 숫자 형식을 변환하는 경우

   1) 숫자 값을 문자로 변환할 때, 즉 NUMBER형을 VARCHAR2로 전환 할 때 사용.

   2) 이 기법은 연결(Concatenation) 시에 유용하다고 한다.

   3) 형식에 제공되는 자리수를 초과하는 숫자에 대해서는 #을 출력한다.


   <숫자형식 모델>

 요소  설명  예  결과
 9  출력폭을 결정.  999999

 1234 (값이 6자리가 안되므로 4자리만 나옴)

 0  빈자리를 0으로 채움  099999  001234
 $  달러 기호를 붙임  $999999  $1234
 L  지역 화폐 기호  L999999  \1234
 .  명시한 위치에 소수점  999999.99  1234.00
 ,  명시한 위치에 콤마  999,999  1,234
 MI  우측에 마이너스 기호  999999MI  1234- (값이 음수일 때만 -로 출력됨.)
 PR  음수를 <>로 묶음  999999PR  <1234>
 EEEE  지수 부호 표기  99.999EEEE  1.234E+03
 V  10을 n번 곱한다.  9999V99  123400 (V뒤에 있는 자리 수대로 곱함. 여기는 두 자리므로 100을 곱한다.)
 B  0을 공백으로 출력.  B9999.990  1234.00

   문제> EMP 테이블에서 20번 부서 중 급여 앞에 $를 삽입하고 3자리마다 ,를 출력하라.

      SELECT ename, sal, TO_CHAR(sal, '$999,999') sal_test
      FROM emp
      WHERE deptno = 20
      ORDER BY sal DESC;


      ENAME                                 SAL SAL_TEST
      ------------------------------ ---------- ------------
      SCOTT                                3000    $3,000
      FORD                                 3000    $3,000
      JONES                                2975    $2,975
      ADAMS                                1100    $1,100
      SMITH                                 800      $800

[출처] TO_CHAR 함수|작성자 이경모


'DB' 카테고리의 다른 글

날짜형함수  (0) 2009.06.02
데이터형 변환  (0) 2009.06.02
기타 함수  (0) 2009.06.02
그룹 함수  (0) 2009.06.02
GROUP BY  (0) 2009.06.02
Posted by 으랏차
,