SYSDATE()
는 Oracle SQL에서 현재 서버 시스템의 날짜와 시간을 반환하는 가장 기본이자 핵심적인 함수입니다.
1. SYSDATE 함수란?
SYSDATE는 Oracle DB에서 현재 시스템의 날짜와 시간을 DATE
형식으로 반환하는 함수입니다. 시간대(timezone)는 데이터베이스 서버가 설치된 운영 체제의 시간을 기준으로 합니다.
SELECT SYSDATE FROM dual;
예를 들어, 2025-06-03 10:23:45와
같이 출력될 수 있습니다.
2. SYSDATE 기본 예제
예제 1: 현재 날짜 및 시간 확인
SELECT SYSDATE AS current_time FROM dual;
예제 2: SYSDATE 결과 포맷 지정
SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS') AS formatted_date FROM dual;
결과: '2025-06-03 10:23:45'
예제 3: 오늘 날짜의 레코드 조회
SELECT *
FROM orders
WHERE TRUNC(order_date) = TRUNC(SYSDATE);
설명: SYSDATE를 사용해 오늘 날짜 기준으로 데이터 조회
3. 날짜 연산 예제
예제 4: 하루 전 날짜
SELECT SYSDATE - 1 AS yesterday FROM dual;
예제 5: 일주일 후 날짜
SELECT SYSDATE + 7 AS next_week FROM dual;
예제 6: 특정 기간 경과 확인
SELECT employee_id, SYSDATE - hire_date AS days_worked
FROM employees;
4. SYSDATE와 유사 함수 비교
함수 | 설명 | 특징 |
---|---|---|
SYSDATE | 현재 서버 날짜와 시간 | DATE 타입 반환 |
CURRENT_DATE | 세션의 타임존 기준 날짜 | 사용자 시간대 반영 |
SYSTIMESTAMP | 현재 서버의 타임스탬프 | TIMESTAMP WITH TIME ZONE 반환 |
5. 실무 활용 사례
예제 7: 금일 로그인 사용자 조회
SELECT user_id, login_time
FROM login_log
WHERE TRUNC(login_time) = TRUNC(SYSDATE);
예제 8: 이번 달 매출 요약
SELECT SUM(amount) AS total_sales
FROM sales
WHERE sale_date BETWEEN TRUNC(SYSDATE, 'MM') AND SYSDATE;
예제 9: 데이터 유효기간 필터링
SELECT *
FROM documents
WHERE expiration_date > SYSDATE;
6. SYSDATE 사용 시 주의사항
- SYSDATE는 Oracle 서버의 시스템 시간 기준으로 동작합니다.
- 세션 시간대가 다른 경우
CURRENT_DATE
나SYSTIMESTAMP
를 고려해야 합니다. - SYSDATE는 인덱스를 사용할 수 없는 경우가 있으므로,
TRUNC()
와 함께 사용할 때는 성능에 유의하세요.
7. 성능 팁
- 조건절에 SYSDATE를 직접 사용하는 대신 바인드 변수 또는 가공된 칼럼을 활용하는 것이 성능에 유리할 수 있습니다.
- TO_CHAR(SYSDATE, …)는 가독성은 높지만 인덱스를 무력화할 수 있습니다.
8. 결론
Oracle SQL의 SYSDATE()
함수는 날짜 및 시간 처리의 핵심이며, 현재 시간을 기준으로 한 연산, 비교, 포맷 출력 등에 있어 실무적으로 매우 중요한 역할을 수행합니다. 다른 시간 관련 함수들과의 차이를 정확히 이해하고, 용도에 맞게 적절히 사용하는 것이 효율적인 SQL 개발의 핵심입니다.
9. 참고자료
- Oracle 공식 문서: https://docs.oracle.com
- Oracle SQL Language Reference 21c
- 날짜와 시간 함수 실무 활용 가이드 - 김상형 저
'Database' 카테고리의 다른 글
[ Oracle] 오라클 CURRENT_TIMESTAMP() 함수로 정확한 현재 시간 가져오기 (0) | 2025.06.04 |
---|---|
[ Oracle] 오라클 CURRENT_DATE() 함수로 세션 기준 날짜 쉽게 확인하기 (0) | 2025.06.04 |
[ Oracle] 오라클 CHR() 함수란? 아스키 문자 처리 실전 활용법 (0) | 2025.06.04 |
[ Oracle] 오라클 ASCII() 사용법과 예제: 문자 → 숫자로 변환하는 기본 함수 (0) | 2025.06.04 |
[Oracle] 오라클 SOUNDEX()로 고객 오타명 검색 정확도 높이기 실전 예제 (0) | 2025.06.04 |