날짜함수
- months_between : 날짜와 날짜 사이의 개월수를 출력
- add_months : 날짜에서 개월수를 더한 날짜를 출력
- last_day : 특정 날짜의 달의 마지막 날짜를 출력
- next_day : 해당날짜의 달에서 앞으로 돌아올 특정 요일의 날짜를 출력
- 오늘 날짜 출력 하기 (sysdate)
select sysdate
from dual;
예제 : 내일 날짜
select sysdate + 1
from dual;
날짜 - 날짜 = 숫자 (날짜에서 날짜빼면 그사이의 며칠인지를 뽑는것이기 때문에 날짜가 뽑히는게 아닌 숫자가 뽑힌다.)
날짜 + 숫자 = 날짜
날짜 - 숫자 = 날짜
(months_between) (날짜 사이의 달 구하기)
예시 : 오늘 날짜에서 입사일을 빼보세요
select sysdate - hire date
from emp
설명 : 엄청난 소수점이 나오는 이유는 sysdate 가 시,분,초 까지 나오기 때문에 검색할때마다 값도 다르게 나온다.
소수점이 보기 싫으면 round 둘러주면 된다. or trunc ( 소수점 버리기)
문제 : 내가 태어난 날짜부터 오늘까지 총 몇달 살았는지 출력하시오
select round(months_between(sysdate, birth))
from emp14
where ename = '노현정';
문제 : 이름 출력하고, 입사한 날짜부터 오늘까지 총 몇달 근무했는지
(소수점 이후를 다 자르기)
select ename, trunk(months_between(sysdate, birth)
from amp;
ADD_MONTH (개월 수 더한 날짜 출력)
select add_months('2019/05/01, 100)
from dual ;
예제 : 오늘 날 다음 200개월 뒤
select add_months (sysdate, 200)
from dual;
NEXT_DAY (특정날짜 뒤에오는 요일의 날짜 출력 )
select next_day ('2021/05/05', '월요일')
for daul;
설명 : 월요일의 날짜가 출력되어진다.
예제 : 오늘날짜에서 100개월 뒤 돌아오는 월요일의 날짜
select next_day(add_months(sysdate, 100), '월요일')
from dual;
설명 : 함수를 중첩하여 사용할 수 있습니다.
LAST_DAY (해당 달의 날짜의 마지막 날짜를 출력 )
select last_day('2021/05/05')
from dual;
문제 : 오늘부터 요번달 말일까지 총 몇일 남았는지 출력
select last_day(sysdate)-sysdate
from dual;
→ sysdate 의 마지막날짜 last_day 를 출력하고 sysdate 를 빼줘서 날짜를 출력해 준다.
'Oracle > SQL' 카테고리의 다른 글
SQL 단일행 함수 -변환함수 (To_date) 날짜형으로 변환 (0) | 2021.11.19 |
---|---|
SQL 단일행 함수 -변환함수 (To_char) 문자형으로 변환 (0) | 2021.11.19 |
SQL 단일행 함수 - 숫자함수 (Round, Trunc, Mod)반올림, 숫자버리기, 나누기 (0) | 2021.11.19 |
SQL 단일행 함수 - 문자함수 (Trim, Rtrim, Ltrim) 문자잘라내기 (0) | 2021.11.19 |
SQL 단일행 함수 - 문자함수 (Replace), (Lpad, Rpad) 문자 대체하기, 특정철자를 n 개만큼 채우기 (0) | 2021.11.19 |