본문 바로가기
Database/Oracle

[오라클(Oracle) 기초] 날짜 함수 ( SYSDATE / MONTHS_BETWEEN / ADD_MONTHS / NEXT_DAY / LAST_DAY / ROUND / TRUNC 함수)

by Ali1020 2022. 4. 13.

 

 

[오라클(Oracle) 기초] 날짜 함수 ( SYSDATE / MONTHS_BETWEEN / ADD_MONTHS / NEXT_DAY / LAST_DAY 함수)

 

1. SYSDATE 함수

2. MONTHS_BETWEEN 함수

3. ADD_MONTHS 함수

4. NEXT_DAY 함수

5. LAST_DAY 함수

 

 

 

 

1. SYSDATE 함수

현재의 날짜를 반환하는 함수

1
2
3
4
select sysdate,              ---- 22/04/13
       sysdate - 1,          ---- 22/04/12
       sysdate + 1           ---- 22/04/14
from dual;
 
cs

 

 

2. MONTHS_BETWEEN 함수

두 날짜 사이의 개월 수를 계산하는 함수

1
MONTHS_BETWEEN(date1, date2)
cs

 

ex) 오늘 날짜(2022/04/13)부터 2023/05/13까지의 개월 수 계산

1
2
select months_between('2023/05/13', sysdate)         ---- 13
from dual;
 
cs

 

ex) emp 테이블에서 각 사원의 이름,  현재까지의 근무 개월 수 계산하여 출력

1
2
select name, months_between(sysdate, hiredate)  
from emp;
 
cs

 

 

 

3. ADD_MONTHS 함수

지정 날짜에 특정 개월 수를 더해주는 함수이다. 

1
ADD_MONTHS(date, 개월 수)
cs

 

ex) 현재일이 2022/04/13 일 때

 

1
2
3
4
5
select add_months(sysdate, 3),       ---- 22/07/13
       add_months(sysdate, 6),       ---- 22/10/13
       add_months(sysdate, -3),      ---- 22/01/13
       add_months(sysdate, -6)       ---- 21/10/13
from dual;
 
cs

 

ex) professor 테이블에서 교수의 이름과 입사일, 그리고 입사일에 6개월을 더한 날짜를 계산하여 출력(입사일의 칼럼명은 '입사일'로, 입사일에 6개월을 더한 날짜의 칼럼명은 'h_date_6'으로 지정)

 

1
2
select name, hiredate 입사일, add_months(hiredate, 6"h_date_6"
from professor;
 
cs

 

 

 

4. NEXT_DAY 함수

해당 날짜 후의 첫 번째 특정 요일을 계산하여 반환하는 함수이다.

1
next_day(date, 요일 or 숫자)
cs

형식은 위와 같이 나타낸다. 만약 date에 sysdate를, 요일에 수요일(wed)을 넣으면 오늘 이후 최초로 돌아오는 수요일 날짜를 계산하여 반환한다. 또한 mon, monday, wed, wednesday 등 문자뿐 아니라 숫자로도 입력할 수 있다. 오라클에서는 일요일이 1부터 시작하여 월요일이 2, 화요일 3, 수요일 4,..... 토요일이 7의 값을 가진다. 

1
2
3
4
5
6
select next_day(sysdate, 'wed'),             ---- 22/04/20
       next_day(sysdate, 'wednesday'),       ---- 22/04/20
       next_day(sysdate, 4),                 ---- 22/04/20
       next_day(sysdate, 'mon'),             ---- 22/04/18
       next_day(sysdate, 2)                  ---- 22/04/18
from dual;
 
cs

 

ex) professor 테이블에서 교수의 이름과 입사일, 입사일 이후 최초의 토요일을 계산하여 출력

1
2
select name, hiredate, next_day(hiredate, 7)
from professor;
cs

 

 

 

5. LAST_DAY 함수

해당 날짜가 속한 달의 마지막 날짜를 계산하여 반환한다. 예를 들어 2020/01/02는 2020/01/31로, 2022/04/13은 2022/04/30으로 반환한다.

1
last_day(date)
cs

 

1
2
3
4
5
select last_day(sysdate),          ---- 22/04/30
       last_day('2022/04/12'),     ---- 22/04/30
       last_day('2021/01/25'),     ---- 21/01/31
       last_day('2025/02/01')      ---- 25/02/28
from dual;
 
cs

 

 

 

[오라클(Oracle) 기초] 날짜 함수 ( SYSDATE / MONTHS_BETWEEN / ADD_MONTHS / NEXT_DAY / LAST_DAY 함수)

-요약-

 

1. SYSDATE 함수

- 현재 날짜를 반환

- select sysdate from dual;

 

2. MONTHS_BETWEEN 함수

- 두 날짜 사이의 개월 수를 계산

- months_between(date1, date2)

 

3. ADD_MONTHS 함수

- 날짜에 개월 수를 더하여 반환

- add_months(date, 개월 수)

 

4. NEXT_DAY 함수

- 해당 날짜 후의 첫 번째 특정 요일을 계산하여 반환

- next_day(date, 요일 or 숫자)

 

5. LAST_DAY 함수

- 해당 날짜가 속한 달의 마지막 날짜를 계산

- last_day(date)

 

댓글