문제
Oracle에서 SYSDATE가 2025-01-01 13:30:00일 때 다음 SQL의 실행 결과로 가장 적절한 것은?
SQLSELECT TRUNC(SYSDATE), ROUND(SYSDATE) FROM DUAL;
① 2025/01/01 00:00:00, 2025/01/02 00:00:00 ② 2025/01/01 13:00:00, 2025/01/01 14:00:00 ③ 2025/01/01 00:00:00, 2025/01/01 00:00:00 ④ 2025/01/02 00:00:00, 2025/01/02 00:00:00
정답
1번
해설
정답: 1. 날짜 단위 TRUNC는 당일 00:00:00으로 절삭하고, ROUND는 정오 이후면 다음 날짜 00:00:00으로 반올림한다.
오답 풀이
- 1번: 13:30은 정오 이후이므로 ROUND 결과가 다음 날짜가 된다.
- 2번: 기본 TRUNC/ROUND는 시각 단위가 아니라 날짜 단위로 처리된다.
- 3번: 정오 이후 ROUND 결과를 잘못 판단했다.
- 4번: TRUNC는 다음 날짜가 아니라 현재 날짜 00:00:00이다.
보충 개념 Oracle 날짜 함수 TRUNC(date)는 지정 단위로 절삭하고 ROUND(date)는 지정 단위로 반올림한다. 단위 생략 시 기본은 일자 기준이다.