날짜함수
날짜는 마치 문자열처럼 ''으로 감싼다
SYSDATE | 시스템 현재 날짜와 시간 |
MONTHS_BETWEEN | 두 날짜 사이의 개월 수 |
ADD_MONTHS | 주어진 날짜에 개월수 더함 |
NEXT_DAYS | 주어진 날짜 다음에 오는 일자 표현 |
LAST_DAYS | 해당 월의 마지막 날짜 |
ROUND | 주어진 날짜 반올림 |
TRUNC | 주어진 날짜 버림 |
SELECT
SYSDATE "오늘"
, SYSDATE + 1 "내일"
, SYSDATE - 2 "그저께"
, SYSDATE + 1/24 "1시간 후"
FROM dual;
일 차이 계산
SELECT SYSDATE "오늘", SYSDATE - TO_DATE('2022-07-26')
FROM dual;
개월수 차이 : MONTHS_BETWEEN()
SELECT
MONTHS_BETWEEN('2012-03-01', '2012-01-01') "양수" -- 왼쪽이 큰 값이면 양수가 나온다
, MONTHS_BETWEEN('2012-01-01', '2012-03-01') "음수" -- 오른쪽이 큰 값이면 음수가 나온다
, MONTHS_BETWEEN('2012-02-29', '2012-02-01') "2/29-2/01" -- 28일차가 계산이 된다
, MONTHS_BETWEEN('2012-04-30', '2012-04-01') "4/30-4/01" -- 29일차가 계산이 된다
FROM dual;
[실습] #4501
SELECT
name "이름"
, sysdate "오늘"
, to_char(hiredate, 'yyyy-mm-dd') "입사일"
, to_char(sysdate, 'yyyy') - to_char(hiredate, 'yyyy') "근속연수"
, round(MONTHS_BETWEEN(sysdate, hiredate), 1) "근속개월"
, round((sysdate - hiredate), 1) "근속일"
FROM t_professor