본문 바로가기
Database/Oracle

[ORACLE] CURRENT_DATE() 함수로 세션 기준 날짜 쉽게 확인하기

by Papa Martino V 2025. 6. 4.
728x90

오라클 CURRENT_DATE() 함수로 세션 기준 날짜 쉽게 확인하기
[Oracle] CURRENT_DATE

 

CURRENT_DATE() 함수는 Oracle SQL에서 현재 세션의 타임존(Time Zone)을 기준으로 날짜와 시간을 반환하는 함수입니다. 일반적으로 자주 사용되는 SYSDATE()와의 차이점을 이해하고, 정확한 시간 처리가 필요한 환경에서 적절히 활용하는 것이 중요합니다. 이 글에서는 CURRENT_DATE 함수의 개념, 실전 예제, SYSDATE와의 차이, 주의사항을 포괄적으로 설명합니다.

1. CURRENT_DATE 함수란?

CURRENT_DATE 함수는 사용자의 세션 타임존에 따라 현재 날짜와 시간을 반환합니다. 반면 SYSDATE는 데이터베이스 서버의 시스템 시간 기준입니다.

SELECT CURRENT_DATE FROM dual;

결과는 다음과 같은 형식으로 나타납니다: 03-JUN-25 11:42:33 (세션 타임존 기준)

2. CURRENT_DATE 기본 예제

예제 1: 세션 기준 현재 시간 출력

SELECT CURRENT_DATE FROM dual;

예제 2: 포맷 지정 출력

SELECT TO_CHAR(CURRENT_DATE, 'YYYY-MM-DD HH24:MI:SS') AS current_time FROM dual;

예제 3: 오늘 날짜의 데이터 조회


SELECT *
  FROM user_activity
 WHERE TRUNC(login_time) = TRUNC(CURRENT_DATE);
  

3. SYSDATE와 CURRENT_DATE의 차이점

항목 SYSDATE CURRENT_DATE
기준 시간 서버 OS 시간 세션 타임존 기준
데이터 타입 DATE DATE
용도 시스템 기준 작업 사용자별 시간대 처리가 필요한 경우

4. 세션 타임존 확인 및 설정

현재 세션의 타임존 확인

SELECT SESSIONTIMEZONE FROM dual;

타임존 설정 예시

ALTER SESSION SET TIME_ZONE = 'Asia/Seoul';

5. 실무 활용 예제

예제 4: 특정 기간 활동 로그 조회


SELECT *
  FROM activity_log
 WHERE log_time BETWEEN CURRENT_DATE - 7 AND CURRENT_DATE;
  

예제 5: 다국적 시스템에서 시간대 처리


-- 유럽 사용자와 한국 사용자의 시간 비교
SELECT CURRENT_DATE AS korea_time,
       CURRENT_DATE AT TIME ZONE 'Europe/Berlin' AS berlin_time
  FROM dual;
  

예제 6: 정기 점검 자동화 기준 시간 지정


SELECT *
  FROM maintenance_schedule
 WHERE schedule_time <= CURRENT_DATE;
  

6. CURRENT_DATE 주의사항

  • 세션 타임존이 명시되지 않으면, DB의 기본값을 따릅니다.
  • 시간 비교 시 항상 TRUNC() 또는 TO_CHAR()로 포맷을 명확히 지정하세요.
  • 다중 사용자 환경에서는 SYSDATE보다 CURRENT_DATE가 정확한 비교를 가능하게 합니다.

7. 성능 팁

  • CURRENT_DATE는 DATE 타입이므로, DATE 칼럼과의 직접 비교가 가능합니다.
  • 날짜 인덱스가 설정된 칼럼을 조건절에 사용할 경우 TRUNC() 사용은 인덱스를 무력화할 수 있습니다.
  • 필요한 경우 BIND 변수 또는 저장된 DATE 값을 활용한 비교가 바람직합니다.

8. 결론

Oracle의 CURRENT_DATE() 함수는 세션 시간대 기준으로 현재 날짜와 시간을 반환하는 기능을 제공하여, 사용자 맞춤형 시간 처리에 매우 적합합니다. 특히 글로벌 환경이나 멀티 타임존 기반 애플리케이션에서 그 진가를 발휘합니다. SYSDATE와의 차이점 및 주의사항을 정확히 이해하고 활용한다면, 보다 안정적이고 정확한 SQL 시스템 운영이 가능해집니다.

9. 참고자료

  • Oracle 공식 문서: https://docs.oracle.com
  • Oracle SQL Language Reference 21c
  • 멀티타임존 기반 데이터 처리 실무 - 김상형 저
728x90