SELECT ABS(35), ABS(-35) FROM DUAL; -- 35, 35
SELECT SIGN(35), SIGN(-35), SIGN(0) FROM DUAL; -- 1, -1, 0
SELECT ROUND(34.4567), ROUND(34.567) FROM DUAL; -- 34, 35
SELECT ROUND(12.3456, 2), ROUND(12.34556, 3) FROM DUAL; -- 12.35, 12.346
SELECT TRUNC(17/5), MOD(17, 5) FROM DUAL; -- 3, 2
SELECT POWER(5, 2), SQRT(25) FROM DUAL; -- 25, 5
SELECT SYSDATE, CURRENT_DATE, SYSTIMESTAMP, CURRENT_TIMESTAMP FROM DUAL;

SYS는 오라클 서버 시간이며 CURRENT는 현지 시간이다
ALTER SESSION SET TIME_ZONE = '-08:00';
ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD HH24:MI:SS';

TIMESTAMP는 milli-second까지 반환한다
SELECT EXTRACT(YEAR FROM SYSDATE) FROM DUAL;
SELECT EXTRACT(MINUTE FROM SYSDATE) FROM DUAL;
가입 회원 중에 비수가(2, 3, 11, 12)월 달에 가입한 회원 조회
SELECT * FROM MEMBER WHERE EXTRACT (MONTH FROM REGDATE) IN (2, 3, 11, 12);
SELECT ADD_MONTHS(SYSDATE, 1) FROM DUAL;
SELECT ADD_MONTHS(SYSDATE, -1) FROM DUAL;
가입 회원 중에 가입한지 6개월이 안되는 회원 조회
SELECT * FROM MEMBER WHERE ADD_MONTHS (SYSDATE, -6) < REGDATE;
SELECT MONTHS_BETWEEN(SYSDATE, TO_DATE('2013-12-25')) FROM DUAL;
다가오는 가장 빠른 요일에 해당되는 날짜를 반환
SELECT NEXT_DAY(SYSDATE, '토요일') FROM DUAL;
SELECT NEXT_DAY(SYSDATE, '토') FROM DUAL;
SELECT NEXT_DAY(SYSDATE, 7) FROM DUAL;
두 번째 인자는 1~7로 1이 일요일을 의미한다
SELECT LAST_DAY(SYSDATE) FROM DUAL;
SELECT ROUND(SYSDATE, 'CC'), TRUNC(SYSDATE, 'CC') FROM DUAL; -- CC : 한세기 단위
SELECT ROUND(SYSDATE, 'YEAR'), TRUNC(SYSDATE, 'YEAR') FROM DUAL; -- YEAR : 년 단위
SELECT ROUND(SYSDATE, 'Q'), TRUNC(SYSDATE, 'Q') FROM DUAL; -- Q : 분기 단위
SELECT ROUND(SYSDATE, 'MONTH'), TRUNC(SYSDATE, 'MONTH') FROM DUAL; -- MONTH : 월 단위
SELECT ROUND(SYSDATE, 'W'), TRUNC(SYSDATE, 'W') FROM DUAL; -- W : 주 단위
SELECT ROUND(SYSDATE, 'DAY'), TRUNC(SYSDATE, 'DAY') FROM DUAL; -- DAY : 일 단위
SELECT ROUND(SYSDATE, 'D'), TRUNC(SYSDATE, 'D') FROM DUAL; -- D : 일 단위
SELECT ROUND(SYSDATE, 'HH'), TRUNC(SYSDATE, 'HH') FROM DUAL; -- HH : 시 단위
SELECT ROUND(SYSDATE, 'MI'), TRUNC(SYSDATE, 'MI') FROM DUAL; -- MI : 분 단위