티스토리 뷰
SYSDATE 함수
SYSDATE 함수는 현재 시스템 날짜와 시간을 반환하는 함수입니다. SYSDATE 함수는 아무런 인수를 필요로하지 않고, 호출될 때마다 현재 시스템의 날짜와 시간을 가져옵니다. 시간을 가져올 때는 오라클 DB가 설치된 서버의 날짜 정보를 가져옵니다. 따라서 데이터베이스 서버의 시간 설정은 정확하게 유지하는 것이 중요합니다.
SELECT SYSDATE AS NOW,
SYSDATE-1 AS YESTERDAY,
SYSDATE+1 AS TOMORROW
FROM DUAL ;
YESTERDAY | NOW | TOMORROW |
2023-06-13 17:42:27.000 | 2023-06-14 17:42:27.000 | 2023-06-15 17:42:27.000 |
ADD_MONTHS 함수
ADD_MONTHS 함수는 특정 날짜에 지정한 개월 수 이후 날짜 데이터를 반환합니다.
ADD_MONTHS([날짜 데이터(필수)],[더할 개월 수 (정수)(필수)])
SELECT SYSDATE,
ADD_MONTHS(SYSDATE,3)
FROM DUAL
;
SYSDATE | ADD_MONTHS(SYSDATE,3) |
2023-06-14 20:33:30.000 | 2023-09-14 20:33:30.000 |
MONTHS_BETWEEN 함수
MONTHS_BETWEEN 함수는 두 개의 날짜를 입력하고 두 날짜 간의 개월 수 차이를 구하는데 사용합니다.
MONTHS_BETWEEN([날짜1(필수)],[날짜2(필수)]
SELECT MONTHS_BETWEEN(SYSDATE ,ADD_MONTHS(SYSDATE,3))
FROM DUAL;
MONTHS_BETWEEN(SYSDATE ,ADD_MONTHS(SYSDATE,3)) |
-3 |
SELECT MONTHS_BETWEEN(ADD_MONTHS(SYSDATE,3) ,SYSDATE)
FROM DUAL;
MONTHS_BETWEEN(ADD_MONTHS(SYSDATE,3) ,SYSDATE) |
3 |
날짜를 입력하는 위치에 따라 음수 또는 양수가 나올 수 있습니다. 개월 수 차이는 소수점 단위까지 결과가 나오므로 TRUNC 함수를 조합하면 개월 수 차이를 정수로 출력할 수도 있습니다.
NEXT_DAT, LAST_DAY 함수
NEXT_DAY 함수는 날짜와 요일을 매개변수로 받아 해당 날짜 이후로 가장 가까운 요일을 찾아 반환합니다.
NEXT_DAY([날짜(필수)],[요일 문자(필수)])
LAST_DAY 함수는 해당 날짜가 속한 달의 마지막 날짜를 반환해주는 함수입니다.
LAST_DAY([날짜(필수)])
SELECT NEXT_DAY(SYSDATE,'월요일'), LAST_DAY(SYSDATE)
FROM DUAL;
NEXT_DAY(SYSDATE,'월요일') | LAST_DAY(SYSDATE) |
2023-06-19 20:56:19.000 | 2023-06-30 20:56:19.000 |
ROUND, TRUNC 함수
숫자의 반올림, 버림 처리에 사용하는 ROUND,TRUNC 함수는 날짜를 입력 데이터로 사용할 수 있습니다. 이때는 소수점 위치 정보를 입력하지 않고 반올림, 버림의 기준이 될 포맷 값을 지정해 줍니다.
포맷 모델 | 기준 단위 |
CC, SCC | 네 자리 연도의 끝 두 자리를 기준으로 사용 |
SYYYY, YYYY, YEAR, SYEAR, YYY, YY, Y | 날짜 데이터의 해당 연,월,일의 7월 1일을 기준 (2016년 7월 1일 일 경우, 2017년으로 처리) |
IYYY, IYY, IY, I | ISO 8601에서 제정한 날짜 기준년도 포맷을 기준 |
Q | 각 분기의 두 번째 달의 16일 기준 |
MONTH, MON, MM, RM | 각 달의 16일 기준 |
WW | 해당 연도의 몇 주(1 ~ 53번째 주)를 기준 |
IW | ISO 8601에서 제정한 날짜 기준 해당 연도의 주(week)를 기준 |
W | 해당 월의 주(1~5번째 주)를 기준 |
DDD, DD, J | 해당 일의 정오(12:00:00)를 기준 |
DAY, DY, D | 한 주가 시작되는 날짜를 기준 |
HH, HH12, HH24 | 해당일의 시간을 기준 |
MI | 해당일 시간의 분을 기준 |
ROUND(SYSDATE, 'CC') 함수는 현재 시스템 날짜의 세기 부분을 반올림한 후, 날짜 형식으로 반환합니다.
SELECT SYSDATE ,
ROUND(SYSDATE,'CC'),
ROUND(SYSDATE+10063,'CC')
FROM DUAL;
SYSDATE | ROUND(SYSDATE,'CC') | ROUND(SYSDATE+10063,'CC') |
2023-06-14 21:23:23.000 | 2001-01-01 00:00:00.000 | 2101-01-01 00:00:00.000 |
현재 시스템 날짜가 2023년 6월 14일이라면 2001-01-01로 반환됩니다.
SYSDATE+10063는 현재 날짜(2023년 6월 14일)에 10063일을 더한 결과인 2051년 1월 1일을 기준으로 반올림합니다.
ROUND(SYSDATE,'YYYY')는 7월 1일을 기준으로 반올림 후 날짜 형식으로 반환합니다.
SELECT SYSDATE ,ROUND(SYSDATE,'YYYY'),ROUND(SYSDATE+40,'YYYY')
FROM DUAL;
SYSDATE | ROUND(SYSDATE,'YYYY' | ROUND(SYSDATE+40,'YYYY') |
2023-06-14 21:39:37.000 | 2023-01-01 00:00:00.000 | 2024-01-01 00:00:00.000 |
현재 시스템 날짜가 2023년 6월 14일이라면 2023-01-01 로 반환됩니다. SYSDATE+40은 현재날짜에서 40일을 더한
2023-07-24일을 기준으로 반올림합니다.
날짜 차이 계산
시간 차이 계산
'공부 > SQL' 카테고리의 다른 글
[SQL]PL/SQL - 2 조건 제어문 (0) | 2023.06.16 |
---|---|
[SQL]PL/SQL - 1 (1) | 2023.06.16 |
오라클 숫자 관련 함수 (0) | 2023.06.14 |
오라클 문자 관련 함수 (0) | 2023.06.14 |
[SQL] 오라클 데이터 타입 정리 (0) | 2023.06.09 |
- Total
- Today
- Yesterday
- 10773
- 문자열 압축
- 체스판 다시 칠하기
- 달팽이는 올라가고 싶다
- 오븐 시계
- 프로그래머스
- 1436
- 위상정렬
- C언어
- 퀵정렬
- 셀프 넘버
- 15650
- 2164
- 이진 변환 반복하기
- 15651
- 계수정렬
- 백준
- Java
- 카드2
- 1034
- 알고리즘
- 2869
- 영화감독 슘
- 10989
- 2525
- 프록시와 지연로딩
- 수 찾기
- 수 정렬하기 3
- N과 M (2)
- 4673
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |