
🔹 SYSDATE란?
SYSDATE는 오라클 서버의 현재 날짜와 시간을 반환하는 함수야.
→ DATE 타입으로 반환되고, 날짜와 시간(시:분:초) 까지 포함돼 있어.
✅ 사용 예시
SELECT SYSDATE FROM DUAL;
📌 결과 (예시):

🔸 SYSDATE와 자주 쓰는 함수들
| 함수 | 설명 |
| SYSDATE | 현재 날짜 + 시간 |
| TRUNC(SYSDATE) | 시간은 제거하고 날짜만 가져옴 (00:00:00) |
| TO_CHAR(SYSDATE, 'YYYY-MM-DD') | 문자열 형식으로 날짜 출력 |
| SYSDATE + 1 | 하루 뒤 (내일) |
| SYSDATE - 7 | 일주일 전 |
| ADD_MONTHS(SYSDATE, 3) | 3개월 뒤 날짜 |
| EXTRACT(YEAR FROM SYSDATE) | 현재 연도만 추출 |
🔸 SYSDATE 예제들
▶ 오늘이 몇 요일인지 확인
SELECT TO_CHAR(SYSDATE, 'DAY') AS 요일 FROM DUAL;
▶ 생일에서 나이 계산
SELECT EXTRACT(YEAR FROM SYSDATE) - EXTRACT(YEAR FROM TO_DATE('1995-04-11', 'YYYY-MM-DD')) AS 나이 FROM DUAL;
✅ Oracle 날짜 함수 전체 정리
| 함수 이름 | 설명 | 예시 |
| SYSDATE | 현재 날짜와 시간 | SELECT SYSDATE FROM DUAL; |
| CURRENT_DATE | 현재 세션 시간대의 날짜 | SELECT CURRENT_DATE FROM DUAL; |
| SYSTIMESTAMP | 시간 + 소수초 + 타임존 | SELECT SYSTIMESTAMP FROM DUAL; |
| ADD_MONTHS(date, n) | n개월 더하거나 빼기 | ADD_MONTHS(SYSDATE, 2) |
| MONTHS_BETWEEN(date1, date2) | 두 날짜 사이의 개월 수 | MONTHS_BETWEEN('2025-04-01', '2024-01-01') |
| NEXT_DAY(date, '요일') | 다음 요일 찾기 | NEXT_DAY(SYSDATE, '월요일') |
| LAST_DAY(date) | 그 달의 마지막 날 | LAST_DAY(SYSDATE) |
| TRUNC(date) | 날짜의 시간 제거 (00:00:00) | TRUNC(SYSDATE) |
| ROUND(date) | 날짜 반올림 (정오 기준) | ROUND(SYSDATE) |
| EXTRACT(part FROM date) | 날짜에서 연도, 월 등 뽑기 | EXTRACT(YEAR FROM SYSDATE) |
📘 각 함수 설명 + 예시
1. 📅 SYSDATE — 현재 날짜/시간
SELECT SYSDATE FROM DUAL;
-- 2025-04-11 10:23:45 (현재 시간)
2. 📈 ADD_MONTHS — 개월 더하거나 빼기
SELECT ADD_MONTHS(SYSDATE, 2) FROM DUAL; -- 2개월 후
SELECT ADD_MONTHS(SYSDATE, -1) FROM DUAL; -- 1개월 전
3. 📆 MONTHS_BETWEEN — 개월 차이
SELECT MONTHS_BETWEEN(TO_DATE('2025-04-01','YYYY-MM-DD'),
TO_DATE('2024-01-01','YYYY-MM-DD')) AS 개월수
FROM DUAL;
-- 결과: 15
4. 🔁 NEXT_DAY — 다음 특정 요일
SELECT NEXT_DAY(SYSDATE, '금요일') FROM DUAL;
-- 오늘 이후 첫 번째 금요일
5. 📅 LAST_DAY — 그 달의 마지막 날
SELECT LAST_DAY(SYSDATE) FROM DUAL;
-- 2025-04-30
6. ✂️ TRUNC vs ROUND
SELECT TRUNC(SYSDATE), ROUND(SYSDATE) FROM DUAL;
7. 📤 EXTRACT — 날짜 정보만 뽑기
SELECT EXTRACT(YEAR FROM SYSDATE) AS 연도,
EXTRACT(MONTH FROM SYSDATE) AS 월,
EXTRACT(DAY FROM SYSDATE) AS 일
FROM DUAL;
🧠 날짜 계산 팁
| 계산 | 예시 |
| 내일 | SYSDATE + 1 |
| 어제 | SYSDATE - 1 |
| 일주일 전 | SYSDATE - 7 |
| 한 시간 후 | SYSDATE + 1/24 |
| 30분 후 | SYSDATE + 1/48 |
🔁 날짜 → 문자열, 문자열 → 날짜
1. TO_CHAR() — 날짜를 문자열로
SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS') FROM DUAL;
-- 결과: 2025-04-11 10:35:00
2. TO_DATE() — 문자열을 날짜로
SELECT TO_DATE('2025-05-01', 'YYYY-MM-DD') FROM DUAL;
✅ 요약표
| 기능 | 함수 |
| 오늘 날짜 | SYSDATE |
| 시간 포함된 날짜 | SYSTIMESTAMP |
| 개월 계산 | ADD_MONTHS, MONTHS_BETWEEN |
| 요일/말일 | NEXT_DAY, LAST_DAY |
| 잘라내기/반올림 | TRUNC, ROUND |
| 추출 | EXTRACT(YEAR...) |
| 날짜 ↔ 문자열 | TO_CHAR, TO_DATE |
'대덕인재 > Oracle' 카테고리의 다른 글
| [Oracle D-11] 출력순서 (0) | 2025.04.15 |
|---|---|
| [Oracle D-10] 집계 함수 (0) | 2025.04.14 |
| [Oracle D-8] 문자열 함수(String Functions) (0) | 2025.04.11 |
| [Oracle D-8] 숫자함수 (0) | 2025.04.11 |
| [Oracle D-8] 테이블 기본 용어? (?????해야하나??) (0) | 2025.04.10 |