< 날짜 처리 함수 >

- SYSDATE : 현재 시스템 날짜 및 시간 반환

* MONTHS_BETWEEN(DATE1, DATE2)

두날짜 사이 개월 수 => 내부적으로 DATE1 - DATE2후 나누기 30,31이 진행됨
-- -> 결과값은 NUMBER타입

예시) 근무 개월수 구하기 

SELECT EMP_NAME,HIRE_DATE, CEIL(MONTHS_BETWEEN(SYSDATE, HIRE_DATE))||'개월차' "근무개월수"
FROM EMPLOYEE;

 

* ADD_MONTHS(DATE,NUMBER)

 특정 날짜에 해당 숫자만큼의 개월수를 더해서 그 날짜를 리턴
  => 결과값은 DATE타입 

SELECT ADD_MONTHS(SYSDATE,3) FROM DUAL; -- 23-02-15

 

* NEXT_ DAY(DATE,요일(문자|숫자)) 

 특정 날짜 이후에 가까운 해당 요일의 날짜를 반환해주는 함수 
 => 결과값은 DATE타입 

SELECT SYSDATE, NEXT_DAY(SYSDATE,'토') FROM DUAL;
-- 1.일요일 2:월요일 3: 화요일 ,....6:금요일 7:토요일
SELECT SYSDATE, NEXT_DAY(SYSDATE,7) FROM DUAL;

 

* LAST_DAY (DATE)

해당 월의 마지막 날짜를 구해서 반환 
 => 결과값 DATE타입

SELECT EMP_NAME, HIRE_DATE,LAST_DAY(HIRE_DATE),LAST_DAY(HIRE_DATE)-HIRE_DATE
FROM EMPLOYEE;

 

* EXTRACT

특정 날짜로 부터 년도/월/일 만 추출해서 반환하는 함수

 EXTRACT(YEAR|MONTH|DAY FROM DATE) => 결과값은 NUMBER타입 

SELECT EMP_NAME,
       EXTRACT(YEAR FROM HIRE_DATE)"입사년도",
      LPAD(EXTRACT(MONTH FROM HIRE_DATE), 2, '0') "입사월",
      LPAD(EXTRACT(DAY FROM HIRE_DATE),2, '0')"입사일"
FROM EMPLOYEE;
복사했습니다!