Oracle database(오라클 데이타베이스) 날짜 함수 목록 (Date Functions)
오라클 SQL작성 시 빼놓을 수 없는 날짜 함수들입니다.
Database
1. 현재 날짜 및 시간 관련 함수
현재 시스템 날짜와 시간을 반환
SYSDATE
현재 날짜와 시간(타임존 포함) 반환
SYSTIMESTAMP
세션의 타임존 기준 현재 날짜 반환
CURRENT_DATE
세션의 타임존 기준 현재 날짜와 시간 반환
CURRENT_TIMESTAMP
세션 타임존의 현재 날짜와 시간 반환
LOCALTIMESTAMP
SELECT SYSDATE FROM DUAL;
SELECT SYSTIMESTAMP FROM DUAL;
SELECT CURRENT_DATE FROM DUAL;
SELECT CURRENT_TIMESTAMP FROM DUAL;
SELECT LOCALTIMESTAMP FROM DUAL;
2. 날짜 연산 관련 함수
날짜에 n개월을 더한 날짜 반환
ADD_MONTHS(date, n)
두 날짜 간의 개월 수 반환
MONTHS_BETWEEN(date1, date2)
주어진 요일의 다음 날짜 반환
NEXT_DAY(date, '요일')
해당 월의 마지막 날짜 반환
LAST_DAY(date)
SELECT ADD_MONTHS(SYSDATE, 2) FROM DUAL;
SELECT MONTHS_BETWEEN('2024-12-01', '2024-06-01') FROM DUAL;
SELECT NEXT_DAY(SYSDATE, '월요일') FROM DUAL;
SELECT LAST_DAY(SYSDATE) FROM DUAL;
3. 날짜 포맷 변환 함수
문자열을 날짜로 변환
TO_DATE(string, format)
날짜를 문자열로 변환
TO_CHAR(date, format)
SELECT TO_DATE('2025-01-01', 'YYYY-MM-DD') FROM DUAL;
-- 2025-01-01
SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS') FROM DUAL;
-- 2025/01/01 00:00:00
SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD HH:MI:SS AM') FROM DUAL;
-- 2025-01-01 01:10:00 PM
SELECT DAY(SYSDATE) FROM DUAL;
-- SUNDAY
SELECT DY(SYSDATE) FROM DUAL;
-- SUN
4. 날짜 차이 및 비교 함수
TRUNC(date, format)
날짜를 특정 단위로 절삭
SELECT TRUNC(SYSDATE, 'MONTH') FROM DUAL;
ROUND(date, format)
날짜를 특정 단위로 반올림
SELECT ROUND(SYSDATE, 'MONTH') FROM DUAL;
EXTRACT(part FROM date)
날짜에서 특정 부분 추출
SELECT EXTRACT(YEAR FROM SYSDATE) FROM DUAL;
SELECT TRUNC(SYSDATE, 'MONTH') FROM DUAL;
SELECT ROUND(SYSDATE, 'MONTH') FROM DUAL;
SELECT EXTRACT(YEAR FROM SYSDATE) AS YEAR,
EXTRACT(MONTH FROM SYSDATE) AS MONTH,
EXTRACT(DAY FROM SYSDATE) AS DAY
FROM DUAL;
5. 타임스탬프 및 타임존 관련 함수
특정 타임존을 가진 TIMESTAMP 생성
FROM_TZ(TIMESTAMP, '타임존')
특정 타임존의 UTC 오프셋 반환
TZ_OFFSET('타임존')
특정 타임존 기준 현재 시간 반환
CURRENT_TIMESTAMP AT TIME ZONE '타임존'
SELECT FROM_TZ(TIMESTAMP '2025-01-01 12:00:00', 'Asia/Seoul') FROM DUAL;
SELECT TZ_OFFSET('Asia/Seoul') FROM DUAL;
SELECT CURRENT_TIMESTAMP AT TIME ZONE 'America/New_York' FROM DUAL;