Oracle에서 TRUNC 함수는 주로 날짜나 숫자를 정해진 형식으로 "자르는" 데 사용됩니다.
이 함수는 입력된 값에서 필요하지 않은 부분을 제거하여, 더 간단하거나 특정 형식에 맞는 값을 반환합니다.
날짜에 TRUNC을 사용할 때는, 시간 부분을 제거하고 날짜 부분만 남깁니다.
예를 들어, TRUNC 함수를 사용하여 날짜의 시간 정보를 제거하고, 단순히 연, 월, 일 정보만을 반환할 수 있습니다.
SELECT TRUNC(SYSDATE) FROM dual;
-- 결과
2024-05-02 00:00:00
이 쿼리는 현재 날짜와 시간(SYSDATE)에서 시간 부분을 제거하고, 오직 날짜 정보만 반환합니다.
TRUNC 함수는 더 세부적으로 날짜를 조정할 때도 사용할 수 있습니다. 예를 들어, 현재 날짜의 월의 첫째 날을 얻거나, 연도의 첫째 날을 얻는 것이 가능합니다.
-- 현재 날짜에서 월의 첫째 날을 반환
SELECT TRUNC(SYSDATE, 'MM') FROM dual;
-- 결과
2024-05-01 00:00:00
-- 현재 날짜에서 연도의 첫째 날을 반환
SELECT TRUNC(SYSDATE, 'YYYY') FROM dual;
-- 결과
2024-01-01 00:00:00
숫자를 처리할 때 TRUNC 함수는 소수점 아래의 값을 제거합니다. 이는 주어진 숫자를 가장 가까운 정수로 내림(버림)하는 효과가 있습니다.
SELECT TRUNC(123.456) FROM dual;
-- 결과
123
소수점 아래의 특정 자릿수까지 값을 유지하고 싶다면, TRUNC 함수에 두 번째 인수로 자릿수를 지정할 수 있습니다.
-- 소수점 첫째 자리까지 값을 유지
SELECT TRUNC(123.456, 1) FROM dual;
-- 결과
123.4