[오라클 날짜함수: MONTHS_BETWEEN, SYSDATE, TODAY, LAST_DAY, NEXT_DAY]

1. select name, lastlogin, lastlogin+30, lastlogin-30, lastlogin+365,
lastlogin+5/24, lastlogin-8/24 from member where id = 'jsoh2';
--member테이블에서 id가 jsoh2위치하는 name, lastlogin 2개의 컬럼을 뿌려주고,
--lastlogin 컬럼의 값에 +30일을 출력, -30일을 출력, +365일을 출력,
--5시간 더한 값을 출력, 8시간 뺀 값을 출력

2. select months_between('2008/11/25', '2001/08/12') "기간" from dual;
--월 단위로 날짜 연산을 하는 함수
--개월간의 차이: 87.4193548387097개월, 약 87개월
3. SELECT ADD_MONTHS(SYSDATE,5) FROM DUAL;
--월 단위로 날짜 연산을 하는 함수
4. select ID, JOINDATE, MONTHS_BETWEEN(SYSDATE, JOINDATE) TENURE,
ADD_MONTHS(JOINDATE, 6) REVIEW FROM MEMBER
WHERE id = 'jsoh2' and MONTHS_BETWEEN(SYSDATE, JOINDATE) < 120;
--member테이블에서 id가 jsoh2위치하는 id, joindate 2개의 컬럼을 뿌려주고,
--tenure컬럼에는 현재날짜(sysdate)-회원가입한날(joindate)를 계산한 개월수 출력하고,
--review컬럼에는 회원가입한날(joindate)에서 6개월 이후의 값을 출력
5. select sysdate from dual;
--현재시간
6. SELECT SYSDATE TODAY, LAST_DAY(SYSDATE) LASTDAY FROM dual ;
--해당 날짜가 속한 달의 마지막 날짜를 반환하는 함수
7. SELECT NEXT_DAY(sysdate, 'sunday') from dual
--해당 일을 기준으로 명시된 요일의 다음 날짜를 변환하는 함수

※ 아래 이미지 3개는 전부 같은 내용을 담고 있다.

[날짜함수: MONTHS_BETWEEN, SYSDATE, TODAY, LAST_DAY, NEXT_DAY]

1번
출력결과
NAME LASTLOGIN LASTLOGIN+30 LASTLOGIN-30 LASTLOGIN+365 LASTLOGIN+5/24 LASTLOGIN-8/24
홍길동 2008-07-10 15:37:25 2008-08-09 15:37:25 2008-06-10 15:37:25 2009-07-10 15:37:25 2008-07-10 20:37:25 2008-07-10 07:37:25
2번
출력결과
기간
1900-03-27 10:03:52
3번
출력결과
ADD_MONTHS(SYSDATE,5)
2009-04-25 17:23:13
4번
출력결과
ID JOINDATE TENURE REVIEW
jsoh2 2008-07-10 15:36:35 1900-01-04 11:40:13 2009-01-10 15:36:35
5번
출력결과
SYSDATE
2008-11-25 17:23:13
6번
출력결과
TODAY LASTDAY
2008-11-25 17:23:14 2008-11-30 17:23:14
7번
출력결과
NEXT_DAY(SYSDATE,'SUNDAY')
2008-11-30 17:23:14 http://blog.naver.com/agamaster

[출력결과 이미지사이즈: 원본]

[SQL 결과]