본문 바로가기

오라클

3.변환,절삭,나머지,반올림

[] 괄호는 사용안해도 된다는 뜻.


- 나머지

 MOD(m, n)

     m/n의 나머지가 나옴.

SELECT MOD(13, 8) FROM DUAL;



- 절삭

 TRUNC(m,[,n])

      m: 수식or숫자, n:소수점 출력할 갯수(생략하면 정수로 계산)

SELECT 13/8, TRUNC(13/8), MOD(13,8) FROM DUAL    => 13/8 이 계산됨, 13/8이 소수점이하절삭되서 나옴,MOD는 나머지 5가 나옴

SELECT TRUNC(15.693), TRUNC(15.79,0), TRUNC(15.79,-1) FROM DUAL; => 15,15



-  반올림

 ROUND(m [, n]) :

    m: 숫자 n:반올림할 자릿수(생략하면 정수로 반올림) 

    SELECT ROUND(15.693), ROUND(15.193), ROUND(15.193, 1), ROUND(15.193, 0), ROUND(15.193, -1) FROM DUAL; =>

             기본: 정수형 반올림   소수점1의 자리까지 출력해서 반올림,0은 안쓰는것과 동일하다, -1는 1의 자리에서 반올림(20출력)



- 숫자, 날짜를 문자로 변환(VARCHAR2)

 TO_CHAR

- 문자를 날짜로 변환

 TO_DATE


EX1)  시스템날짜를 문자로 변환하여 출력

SELECT SYSDATE, TO_CHAR(SYSDATE, 'YYYY-MM-DD'),

           TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS'),

           TO_CHAR(SYSDATE, 'YYYY-MM-DD DAY'),

           TO_CHAR(SYSDATE, 'YYYY"년" MM"월" DD"일" ') FROM DUAL;

EX2)  12,345 / 0,012,345 / #### / ######  => 9의 자리수가 넘치면 어떻게든 표시 되지만 모자르면 #으로 채워져서 표시

SELECT TO_CHAR(12345, '999,999'),  TO_CHAR(12345, '0,999,999')

                ,TO_CHAR(12345, '999'), TO_CHAR(12345, '0,999') FROM DUAL;

EX3)  원화로 표시

SELECT TO_CHAR(12345, 'L9,999,999') FROM DUAL;

EX4)  MI로 표시일때는 양수는 그냥 표시 음수면 숫자 뒤에 마이너스 부호가 들어간다. / PR이 뒤에 있을때는 양수는 그냥 표시 음수이면 마이너스 부호빠지고 <> 괄호 처진다.

SELECT TO_CHAR(1234, '999,999MI'), TO_CHAR(-1234, '999,999MI'),

                 TO_CHAR(1234, '999,999PR'), TO_CHAR(-1234, '999,999PR') FROM DUAL;

EX5) V다음에 오는 9숫자 갯수만큼 숫자뒤에 0이 붙는다. V이전의 9갯수가 숫자의 갯수보다 적으면 #으로 표시됨

SELECT TO_CHAR(123, '99999V9999') FROM DUAL;