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
[SQLD] 날짜 함수 | Archive