(1) 날짜 관련 함수
함수명 | 의미 | 결과 |
SYSDATE | 시스템의 현재 날짜와 시간 | 날짜 |
MONTH_BETWEEN | 두 날짜 사이의 개월 수 | 숫자 |
ADD_MONTHS | 주어진 날짜에 개월을 더함 | 날짜 |
NEXT_DAY | 주어진날짜를 기준으로 돌아오는 날짜 출력 | 날짜 |
LAST_DAY | 주어진 날짜가 속한 달의 마지막 날짜 출력 | 날짜 |
ROUND | 주어진 날짜를 반올림 | 날짜 |
TRUNC | 주어진 날짜를 버림 | 날짜 |
1) MONTHS_BETWEEN 함수
① 두 날짜를 입력받아 두 날짜 사이의 개월 수를 출력하는 함수임.
② 일반적으로 MONTHS_BETWEEN 함수를 사용하기보다 1개월을 약 31일로 계산하기도 함.
③ 날짜의 경우 어떤 방법을 쓰느냐에 따라 결과가 상당히 다를 수 있기 때문에 주의해야하며,
회사에 따라 사용방법을 확인하고 계산
SELECT MONTH_BETWEEN('14/09/30','14/08/31')
FROM dual;
MONTH_BETWEEN('14/09/30','14/08/31')
---------------------------------------
1
④ 두 날 짜 중 큰 날짜를 먼저 써야 양수가 나옴
SELECT MONTH_BETWEEN('14/08/31','14/09/30')
FROM dual;
MONTH_BETWEEN('14/08/31','14/09/30')
---------------------------------------
-1
⑤ 두 날짜가 같은 달에 속해 있으면 특정 규칙으로 계산 된 값이 나옴
↓ (EX. 1개월이 29일인 2012년 2월을 조회)
SELECT MONTH_BETWEEN('12/02/329','12/02/01')
FROM dual;
MONTH_BETWEEN('12/02/329','12/02/01')
---------------------------------------
.903225806
↓ (EX. 1개월이 30일인 2014년 4월을 조회)
SELECT MONTH_BETWEEN('14/04/30','14/04/01')
FROM dual;
MONTH_BETWEEN('14/04/30','14/04/01')
---------------------------------------
.935483871
↓ (EX. 1개월이 31일인 2014년 5월을 조회)
SELECT MONTH_BETWEEN('14/05/31','14/05/01')
FROM dual;
MONTH_BETWEEN('14/05/31','14/05/01')
---------------------------------------
.967741935
2) ADD_MONTHS() 함수
① ADD_MONTHS() 함수는 주어진 날짜에 숫자만큼의 달을 추가하는 함수
SELECT SYSDATE , ADD_MONTH(SYSDATE,1)
FROM daul;
SYSDATAE ADD_MONTH
--------------------------
13/07/24 13/08/24
3) NEXT_DAY() 함수
① 주어진 날짜를 기준으로 돌아오는 가장 최근 요일의 날짜를 반환하는 함수
② 윈도우용과 리눅스 요은 날짜 표기 방법이 다르기에 요일 표기에 유의해야 함.
SELECT SYSDATE, NEXT_DAY(SYSDATE, '월') FROM daul;
SYSDATE NEXT_DAY
--------------------------
14/10/21 14/10/27
4) LAST_DAY() 함수
① 주어진 날짜가 속한 달의 가장 마지막 날을 출력해주는 함수
SELECT SYSDATE, LAST_DAY(SYSDATE), LAST_DAY('21/12/01')
FROM dual;
SYSDATE LAST_DAY LAST_DAY
-------- -------- --------
21/11/21 21/11/30 21/12/31
5) 날짜의 ROUND(), TRUNC() 함수
① ROUND는 낮(정오)12:00를 기준으로 주어진 날짜가 이 시간을 넘어설 경우 다음날로 출력
② TRUNC은 무조건 당일로 출력
ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD:HH24:MI:SS';
Session altered.
-----------------------------------------------------------
SELECT SYSDATE, ROUND(SYSDATE), TRUNC(SYSDATE)
2 FROM dual;
SYSDATE ROUND(SYSDATE) TRUNC(SYSDATE)
------------------- ------------------- -------------------
2021-11-21:09:17:23 2021-11-21:00:00:00 2021-11-21:00:00:00

'DB' 카테고리의 다른 글
[SQL] 정규식 함수 (0) | 2021.11.21 |
---|---|
[SQL] 08. (5) 단일행 일반 함수 (0) | 2021.11.21 |
[SQL] 08. (2) 단일행 숫자 함수 (0) | 2021.11.21 |
[SQL] 08. (1) 단일행 문자 함수 (0) | 2021.11.20 |
[SQL] 07. JOIN (0) | 2021.11.17 |
댓글