728x90
주요 단일 행 함수 중 지난번 포스팅에서는 문자 함수만 다루었었습니다.
이번에는 문자열 함수 이외의 숫자 함수와 날짜 함수를 알아보려 합니다.
1. ROUND / TRUNC
ROUND / TRUNC(컬럼 or 숫자[, 소수점 자리지정])
- 지정한 자리수에서 반올림(ROUND), 버림(TRUNC)
-자리를 지정하는 값은 반드시 정수값 사용( 생략하면 0으로 인식 )
> 0 : 소수점 이하 자리
< 0 : 소수점 이상 자리
SELECT ROUND(123.456) FROM DUAL;
SELECT ROUND(123.456, 1) FROM DUAL;
SELECT TRUNC(123.456, 1) FROM DUAL;
SELECT TRUNC(123.456, -1) FROM DUAL;
2. CEIL / FLOOR
CEIL() - 올림
FLOOR() - 버림
SELECT CEIL(123.456) FROM DUAL;
SELECT FLOOR(123.456) FROM DUAL;
SELECT CEIL(SAL/1000) FROM EMP;
SELECT FLOOR(SAL/1000) FROM EMP;
3. ADD_MONTHS
ADD_MONTHS(날짜, 더하려는 개월 수)
- 지정한 날짜부터 개월 수를 더한 날짜 반환
--Q) 입사한지 20년이 되는 달을 구하자.
SELECT ENAME, HIREDATE, ADD_MONTHS(HIREDATE, 240) FROM EMP;
4. MONTHS_BETWEEN
MONTHS_BETWEEN(날짜1, 날짜2)
-지정한 두 날짜 사이의 월 수를 반환
날짜1 > 날짜2 -> 양수 반환
날짜1 < 날짜2 -> 음수 반환
SELECT MONTHS_BETWEEN(HIREDATE, SYSDATE) FROM EMP;
5. SYSDATE
SYSDATE -> 오늘날짜
SELECT SYSDATE FROM DUAL;
--Q)00년 1월 1일을 기준으로, 10년 이상 근무한 사람의 이름, 직업, 입사일, 근무년수를 구하자.
SELECT ENAME, JOB, HIREDATE,
TRUNC(MONTHS_BETWEEN('2000/01/01', HIREDATE)/12)
FROM EMP WHERE MONTHS_BETWEEN('2000/01/01', HIREDATE) > 120;
728x90
'RDB > Oracle' 카테고리의 다른 글
[ORACLE] 기타 함수 - NVL, DECODE, CASE [WHEN ... THEN ...] END (0) | 2021.12.29 |
---|---|
[ORACLE] 타입 변환 함수(TO_CHAR, TO_DATE, TO_NUMBER) (0) | 2021.12.28 |
[ORACLE] 자리수 반올림, 올림, 버림(ROUND, TRUNC, CEIL, FLOOR) (0) | 2021.12.26 |
[ORACLE] 문자열 자르기, 해당문자 인덱스 반환(SUBSTR, INSTR) (0) | 2021.12.24 |
[ORACLE] 문자열제거, 공백제거(RPAD / LPAD, RTRIM / LTRIM, TRIM) (0) | 2021.12.23 |