[Oracle] TRUNC 함수 사용법의 모든 것
Oracle에서 TRUNC 함수는 날짜 또는 시간 값을 지정된 형식으로 잘라내는 데 사용됩니다. 이 함수는 다양한 형태의 날짜 및 시간 값을 받아들이고, 원하는 정밀도로 값을 잘라낼 수 있습니다. TRUNC 함수의 기본 구문은 다음과 같습니다.
TRUNC(date_value, [format])
date_value
는 날짜 또는 시간 값입니다.[format]
은 선택적 매개변수이며, 잘라내는 형식을 지정합니다. 이 값이 생략되면 기본값인 ‘DD’ (일)이 사용됩니다.
‘CC’, ‘SYYYY’, ‘YYYY’, ‘YEAR’, ‘SYEAR’, ‘MM’, ‘MON’, ‘MONTH’, ‘DAY’, ‘DDD’, ‘DY’, ‘J’, ‘IW’, ‘W’, ‘HH24’, ‘HH12’, ‘HH’, ‘MI’, ‘SS’, ‘SSSSS’, ‘FF’, ‘AM’ 또는 ‘PM’
TRUNC 함수는 다양한 형식의 날짜 및 시간 값을 지원합니다. 몇 가지 일반적인 사용 예는 다음과 같습니다.
- 올해의 1월 1일로 설정
SELECT TRUNC(SYSDATE, 'YYYY') FROM dual;
- 현재 월의 1일로 설정
SELECT TRUNC(SYSDATE, 'MM') FROM dual;
- 오늘의 시작 시간으로 설정 (시간을 00:00:00으로 설정): ‘DD’옵션을 디폴트로 사용
SELECT TRUNC(SYSDATE) FROM dual;
- 현재 시간의 정각으로 설정 (분과 초를 00:00으로 설정)
SELECT TRUNC(SYSDATE, 'HH') FROM dual;
- 이번 주의 시작 일자로 설정(월~일)
SELECT TRUNC(SYSDATE, 'IW') FROM dual;
- 이번 주의 시작 일자로 설정(일~토)
SELECT TRUNC(SYSDATE, 'DY') FROM dual;
- 현재 월의 1일부터 마지막 일까지 출력
SELECT TO_CHAR(TRUNC(SYSDATE, 'MM') + LEVEL - 1, 'yyyy-mm-dd') AS DAYS FROM dual CONNECT BY LEVEL <= LAST_DAY(SYSDATE) - TRUNC(SYSDATE, 'MM') + 1;
- 올해 주차별 시작일과 종료일 출력(월~일)
SELECT TO_CHAR(TRUNC(SYSDATE, 'YYYY') + (LEVEL - 1) * 7, 'WW') AS weeks , TRUNC(TRUNC(SYSDATE, 'YYYY') + (LEVEL - 1) * 7, 'IW') AS start_date , TRUNC(TRUNC(SYSDATE, 'YYYY') + (LEVEL - 1) * 7, 'IW') + 6 AS end_date FROM dual CONNECT BY TRUNC(SYSDATE, 'YYYY') + (LEVEL - 1) * 7 <= TO_DATE(TO_CHAR(SYSDATE, 'YYYY') || '1231', 'YYYYMMDD');