728x90
반응형
일상적으로 날짜를 사용하는 경우
- 10월 23일 +3은 10월 26일
- 10월 23일 -3은 10월 23일
- 10월 23일 -10월 20일은 3일 차이 난다 라고 생각한다.
이렇게
- 날짜 + 숫자 = 날짜
- 날짜 - 숫자 = 날짜
- 날짜 - 날짜 = 숫자
- 오라클에서도 마찬가지로 인식
함수명 | 의미 | 결과 |
SYSDATE | 시스템의 현재 날짜와 시간 | 날짜 |
MONTHS_BETWEEN | 두 날짜 사이의 개월 수 | 숫자 |
ADD_MONTHS | 주어진 날짜에 개월을 더함 | 날짜 |
NEXT_DAY | 주어진 날짜를 기준으로 돌아오는 날짜 출력 | 날짜 |
LAST_DAY | 주어진 날짜가 속한 달의 마지막 날짜 출력 | 날짜 |
ROUND | 주어진 날짜를 반올림 | 날짜 |
TRUNC | 주어진 날짜를 버림 | 날짜 |
1. SYSDATE 함수
- 현재 시스템의 시간을 출력해 주는 함수
- 오라클에서는 보통 날짜 체계가 미국을 기준으로 되어 있어서 우리나라와 형식이 다르게 출력된다.
- 형식을 맞추려면 아래와 같은 명령어 사용
alter session set NLS_DATE_FORMAT='YYYY-MM-DD:HH24:MI:SS';
alter session set NLS_DATE_FORMAT='YYYY-MM-DD:HH24:MI:SS';
SELECT SYSDATE FROM dual;
2. MONTHS_BETWEEN 함수
- 두 날짜를 입력 받아서 두 날짜 사이의 개월 수를 출력하는 함수
SELECT MONTHS_BETWEEN('2012-03-01','2012-01-01') FROM dual;
- 앞에 작은 숫자가 오면 음수로 나온다.
3. ADD_MONTHS 함수
- 주어진 날짜에 숫자만큼의 달을 추가하는 함수
SELECT SYSDATE, ADD_MONTHS(SYSDATE, 3) from dual;
4. NEXT_DAY 함수
- 주어진 날짜를 기준으로 돌아오는 가장 최근 요일의 날짜를 반환해주는 함수
SELECT SYSDATE, NEXT_DAY(SYSDATE, 'MON'), NEXT_DAY(SYSDATE, 6) FROM dual;
5. LAST_DAY 함수
- 주어진 날짜가 속한 달의 가장 마지막 날을 출력해주는 함수
SELECT SYSDATE, LAST_DAY(SYSDATE) from dual;
6. 날짜의 ROUND, TRUNC 함수
- 날짜 ROUND는 하루의 반에 해당되는 시간 낮(정오) 12:00:00에 해당하는 시간을 넘어서면 다음 날짜로 출력하고 이 시간이 안될 경우 당일로 출력한다.
- TRUNC 함수는 무조건 당일로 출력한다.
SELECT SYSDATE, ROUND(SYSDATE), TRUNC(SYSDATE) from dual;
728x90
반응형
최근댓글