CS
[SQLD] 날짜 함수
2026년 02월 13일 12:10
SQLD 2과목 – 날짜함수
날짜 함수
1. SYSDATE / SYSTIMESTAMP
- 현재 날짜와 시간 반환
- 입력값 없이 호출 가능
SYSDATE
특징
- DBMS의 날짜 포맷 설정에 따라 출력 형식 상이
- SYSDATE는 DATE 타입으로 반환 (초단위까지)
- SYSTIMESTAM는 TIMESTAMP 타입으로 반환 (밀리초까지)
SELECT SYSDATE, -- 2026/02/13 20:48:32
SYSTIMESTAMP -- 2026/02/13 20:48:32.823000 +09:00
FROM DUAL;
2. EXTRACT
- 날짜 또는 타임스탬프 값에서 연, 월, 일 등 특정 요소 추출
- 출력 결과는 숫자 타입으로 반환
EXTRACT(추출대상 FROM 날짜)
특징
- 추출 대상: YEAR, MONTH, DAY, HOUR, MINUTE, SECOND
- SYSDATE 같은 DATE 타입에서는 YEAR, MONTH, DAY 만 추출 가능
- SYSTIMESTAMP 같은 DATE 타입에서는 YEAR, MONTH, DAY, HOUR, MINUTE, SECOND 까지 추출 가능
SELECT EXTRACT(DAY FROM SYSDATE), -- 13
EXTRACT(HOUR FROM SYSTIMESTAMP) -- 20
FROM DUAL;
3. ROUND
- 날짜를 지정한 기준 단위로 반올림
ROUND(날짜, [, 자리수])
특징
- 자리수는 YEAR, MONTH, DD, HH, MI 등 지정 가능
- 지정한 자리수에서 직접 반올림 ❌
- 해당 자리수보다 더 작은 단위에서 반올림 수행
- 자리수 생략 시 기본값 DD
- HOUR 기준으로 반올림 수행
SELECT ROUND(TO_DATE('2026/02/18 09:10:10')), -- 2026/02/18 00:00:00
ROUND(TO_DATE('2026/02/18 09:10:10'), 'MONTH'), -- 2026/03/01 00:00:00
ROUND(TO_DATE('2026/02/18 09:10:10'), 'HH') -- 2026/02/18 09:00:00
4. TRUNC
- 날짜를 지정한 기준 단위로 버림
TRUNC(날짜, [, 자리수])
특징
- 자리수는 YEAR, MONTH, DD, HH, MI 지정 가능
- 지정한 자리수에서 직접 버림 ❌
- 해당 자리수보다 더 작은 단위에서 버림 수행
- 자리수 생략 시 기본값 DD
- HOUR 기준으로 버림 수행
SELECT TRUNC(TO_DATE('2026/02/18 09:10:10')), -- 2026/02/18 00:00:00
TRUNC(TO_DATE('2026/02/18 09:10:10'), 'MONTH'), -- 2026/02/01 00:00:00
TRUNC(TO_DATE('2026/02/18 09:10:10'), 'HH') -- 2026/02/18 09:00:00
