SQL 자격검정 실전문제 중 이러한 문제가 있었다.
SELECT TO_CHAR(TO_DATE('2015.01.10 10', 'YYYY.MM.DD HH24')
+ 1/24/(60/10), 'YYYY.MM.DD HH24:MI:SS') FROM DUAL;
오라클에서 날짜의 연산은 숫자의 연산과 같으며 특정 날짜에 1
을 더하면 하루를 더한 결과와 같다.
따라서 1/24
는 하루를 24로 나눈 것, 즉 1시간과 같으며 1/24/(60/10)
은 하루를 24로 나누고 6으로 나눈 것, 즉 10분과 같으므로 위 문제의 정답은 2015.01.10 10:10:00
이다.
SELECT SYSDATE - 1/24 FROM DUAL; // 1시간 전
SELECT SYSDATE - 1/24/60 FROM DUAL; // 1분 전
SELECT SYSDATE - 1/24/30 FROM DUAL; // 2분 전
SELECT SYSDATE - 1/24/12 FROM DUAL; // 5분 전
SELECT SYSDATE - 1/24/(60/10) FROM DUAL; // 10분 전
SELECT SYSDATE - 1/24/60/6 FROM DUAL; // 10초 전
SELECT SYSDATE - 1/24/60/60 FROM DUAL; // 1초 전
SELECT SYSDATE + 2/24 FROM DUAL; // 2시간 후
SELECT SYSDATE + 10/24/60 FROM DUAL // 10분 후