본문 바로가기
카테고리 없음

오라클 SQL 날짜 시간 처리

by miingnote 2025. 2. 17.

오라클 SQL에서 날짜와 시간을 다루는 것은 데이터베이스 개발에서 매우 중요한 부분입니다. 날짜 및 시간 데이터를 올바르게 처리하지 않으면 오류가 발생하거나 성능 저하가 일어날 수 있습니다. 본 글에서는 오라클 SQL에서 날짜 및 시간을 효과적으로 처리하는 방법을 개발자 관점에서 설명하며, 주요 함수 및 실무에서 활용할 수 있는 팁을 제공합니다.

🕐 1. 오라클 날짜·시간 데이터 타입 이해하기

오라클에서는 날짜와 시간을 저장하기 위해 DATE, TIMESTAMP, INTERVAL 등의 데이터 타입을 제공합니다. 각 데이터 타입은 저장할 수 있는 정보의 범위와 용도가 다릅니다.

✅ DATE 타입

DATE 타입은 날짜와 시간을 저장할 수 있으며, 기본적으로 'YYYY-MM-DD HH24:MI:SS' 형식으로 저장됩니다. 하지만 밀리초나 타임존 정보는 포함되지 않습니다.

SELECT SYSDATE FROM dual;

📌 SYSDATE: 현재 날짜와 시간을 반환

✅ TIMESTAMP 타입

TIMESTAMP는 DATE보다 정밀도가 높은 데이터 타입으로, 밀리초 단위까지 저장할 수 있습니다.

SELECT SYSTIMESTAMP FROM dual;

📌 SYSTIMESTAMP: 현재 날짜와 시간을 밀리초까지 반환

✅ TIMESTAMP WITH TIME ZONE / LOCAL TIME ZONE

이 두 타입은 시간대(Time Zone) 정보를 포함하는 경우에 사용됩니다.

SELECT CURRENT_TIMESTAMP FROM dual;

📌 CURRENT_TIMESTAMP: 현재 세션의 시간대를 포함한 날짜·시간 반환

SELECT LOCALTIMESTAMP FROM dual;

📌 LOCALTIMESTAMP: 세션의 시간대를 반영하여 밀리초까지 포함한 현재 시간 반환

✅ INTERVAL 타입

INTERVAL은 두 날짜 간의 차이를 나타낼 때 사용됩니다.

SELECT INTERVAL '2-3' YEAR TO MONTH FROM dual;

📌 2년 3개월의 기간을 나타냄

📆 2. 날짜·시간 변환 및 포맷팅

오라클에서는 날짜 데이터를 문자열로 변환하거나, 문자열을 날짜 데이터로 변환하는 기능을 제공합니다.

✅ TO_DATE() – 문자열을 날짜로 변환

SELECT TO_DATE('2024-02-17', 'YYYY-MM-DD') FROM dual;

📌 주의! TO_DATE를 사용할 때 형식(format)을 반드시 지정해야 합니다.

✅ TO_CHAR() – 날짜를 문자열로 변환

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

📌 날짜·시간을 'YYYY-MM-DD HH24:MI:SS' 형식의 문자열로 변환

✅ 주요 날짜 포맷 기호

기호 설명 예시
YYYY 연도 2024
MM 02
DD 17
HH24 24시간제 시 14
MI 30
SS 45

⏳ 3. 날짜 연산 및 시간 차이 계산

✅ 날짜 간 차이 계산

SELECT TO_DATE('2024-12-31', 'YYYY-MM-DD') - TO_DATE('2024-01-01', 'YYYY-MM-DD') AS DAYS_DIFF FROM dual;

📌 365일 차이 반환

✅ ADD_MONTHS() – 날짜에 개월 수 추가

SELECT ADD_MONTHS(SYSDATE, 3) FROM dual;

📌 현재 날짜에서 3개월 후 날짜 반환

✅ NEXT_DAY(), LAST_DAY() – 특정 날짜 찾기

SELECT NEXT_DAY(SYSDATE, '월요일') FROM dual;

📌 다음 월요일의 날짜 반환

SELECT LAST_DAY(SYSDATE) FROM dual;

📌 해당 월의 마지막 날 반환

✅ INTERVAL을 활용한 시간 차이 계산

SELECT SYSTIMESTAMP - TO_TIMESTAMP('2024-02-17 12:00:00', 'YYYY-MM-DD HH24:MI:SS') FROM dual;

📌 현재 시간과 특정 시간의 차이를 TIMESTAMP INTERVAL로 반환

📝 결론

오라클 SQL에서 날짜와 시간을 올바르게 다루는 것은 개발자가 데이터베이스를 효율적으로 관리하는 데 필수적인 요소입니다. DATE, TIMESTAMP, INTERVAL과 같은 데이터 타입을 적절히 사용하고, TO_DATE, TO_CHAR, ADD_MONTHS, EXTRACT 등 다양한 함수들을 활용하면 더욱 효과적으로 날짜·시간 데이터를 처리할 수 있습니다. 실무에서 다양한 시간 연산이 필요한 경우, 이러한 함수들을 조합하여 원하는 결과를 얻을 수 있도록 연습해보세요!