ROUND | 형식에 맞추어 반올림한 날짜를 반환한다 ROUND(날짜, 형식) ROUND(sysdate, 'DD') → 2019/04/23 |
TRUNC | 형식에 맞추어 절삭한 날짜를 반환한다 TRUNC(날짜 형식) TRUNC(sysdate, 'YYYY') → 2019/01/01 |
MONTH_BETWEEN | 두 날짜간의 기간을 월 수로 계산한다 MONTH_BETWEEN(날짜1, 날짜2) MONTH_BETWEEN('2011/07/01', '2011/08/01') → -1 MONTH_BETWEEN('2011/08/01', '2011/07/01') → 1 |
ADD_MONTHS | 날짜에 n달을 더한 날짜를 계산하다 ADD_MONTH(날짜, n) ADD_MONTH('2011/07/01', 23) → 2013/06/01 |
NEXT_DAY | 날짜 이후 지정된 요일에 해당하는 날짜 계산 NEXT_DAY(날짜, 요일) NEXT_DAY('2011/07/14', '일요일') → 2011/07/17 |
예제1) 김연아가 오늘까지 일한 일수를 검색
SELECT TRUNC(sysdate, 'DD') - TRUNC(sysdate, 'DD')+1 DAY
// 마이너스 연산을 하면 입사일은 근무일수에서 빠져버림으로 1을 더함
FROM emp WHERE ename='김연아';
예제2) 20번 부서 직원들이 현재까지 근무한 개월 수를 검색한다
SELECT dno 부서번호, eno 사번, ename 사원명, hdate 입사일,
TRUNC(MONTHS_BETWEEN(sysdate, hdate)) 근무개월
FROM emp WHERE dno=20;
예제3) 20번 부서원들이 입사 100일째 되는 날과 10년째 되는 날을 검색
SELECT dno 부서번호, eno 사번, ename 사원명, hdate 입사일,
hdate+100 "입사 후 100일", ADD_MONTHS(hdate, 120) "입사 후 10년"
FROM emp WHERE dno=20;
'Programming > SQL' 카테고리의 다른 글
[Oracle] 12. 다양한 변환함수(TO_CHAR, TO_DATE, TO_NUMBER) (0) | 2019.04.23 |
---|---|
[Oracle] 11. 날짜 출력 포맷 (0) | 2019.04.23 |
[Oracle] 09. 다양한 문자함수(LOWER, UPPER, INITCAP, SUBSTER, TRIM, LPAD, RPAD, LENGTH, TRANSLATE, REPLACE) (0) | 2019.04.23 |
[Oracle] 08. 다양한 숫자함수(ROUND, TRUNC, MOD, POWER, CELL, FLOOR, ABS, SQRT, SIGN) (0) | 2019.04.23 |
[Oracle] 07. Using, On, 등가 조인과 비등가 조인 (0) | 2019.04.22 |