Database/개념정리

[DataBase] Oracle SQL 내장 함수 - 3 (날짜 함수) ADD_MONTHS / MONTH_BETWEEN / NEXT_DAY / LAST_DAY

Sehyeok20 2021. 2. 4. 14:20
반응형

1. ADD_MONTHS

 - 몇 개월 이후 날짜를 구하는 함수

 - ADD_MONTHS( [날짜 데이터] , [더할 개월 수] )

select sysdate, add_months(sysdate,3) from dual;

예시 1

SYSDATE 는 현재 날짜를 의미한다.

select hiredate, add_months(hiredate, 120) as "10주년" from emp;

예시 2

위와 같이 칼럼을 불러와 입사 10주년 날짜를 구할 수도 있다.

 

2. MONTH_BETWEEN 함수

 - MONTH_BETWEEN( [기준 날짜] , [뺄 날짜] )

 - 두 날짜 간의 개월 수 차이를 구하는 함수

select hiredate, sysdate, months_between(hiredate,sysdate) from emp;

고용일로부터 현재까지의 개월 수를 구하는 SQL문이다.

예시 3

결과가 매우 지저분하게 나온다.

이 소수점을 제거하기 위해 숫자함수에서 배웠던 TRUNC 함수를 이용해보자.

또한 음수로 나오므로 hiredate 와 sysdate의 순서도 바꾸어준다.

select hiredate, sysdate, trunc(months_between(sysdate, hiredate)) from emp;

예시 4

 

3. 돌아오는 날짜를 구하는 함수

 - NEXT_DAY ( [날짜 데이터] , [요일 문자] ) : 돌아오는 요일이 몇일인지 출력한다.

 - LAST_DAY ( [날짜 데이터] ) : 날짜 데이터가 속한 달의 마지막 날을 출력한다.

select sysdate, next_day(sysdate, '월요일'), last_day(sysdate) from dual;

예시 5

반응형