시스템에서제공하는 기본 현재 날짜와 시간 값
date + NUMBER : 숫자만큼 일수가 더해진 날짜 Return
date - NUMBER : 숫자만큼 일수가 빠진 날짜 Return
date - date : 두 날짜 사이의 일수 Return
date + 1 / 24 : 한시간을 더한 날짜 Return
주어진 날짜 자료 date에 n월을 더한 날짜 반환
사용 예시) HR계정 사원테이블에서 2015년 이후에 입사한 사원들의 입사일을 5년 뒤로 변경하시오
ex) 2015/03/01=>2020/03/01)
UPDATE EMP
SET HIRE_DATE = ADD_MONTHS(HIRE_DATE,60) -- 5년 뒤니까 12개월*5 는 60
WHERE HIRE_DATE >= '20150101';
SELECT EMP_NAME, HIRE_DATE
FROM EMP
WHERE HIRE_DATE >= '20150101'
ORDER BY 2;
COMMIT;
주어진 날짜 자료 date 이후의 가장 빠른 c 요일의 날짜
Char : 월, 월요일, …
SELECT BUY_DATE AS 일자,
PROD_ID AS 상품번호,
BUY_QTY AS 매입수량
FROM BUYPROD;
WHERE BUY_DATE BETWEEN '20200201' AND LAST_DAY('20200201')
ORDER BY 1;
하지만 별로 좋은 방법이 아님, 오라클에게 자동으로 형변환 시키는 것이므로.
SELECT EMP_ID,
EMP_NAME,
HIRE_DATE,
TRUNC(MONTHS_BETWEEN(SYSDATE, HIRE_DATE)/12) || '년 ' || -- 1년이 12개월이니까 12로 나누기
ROUND(MOD(MONTHS_BETWEEN(SYSDATE, HIRE_DATE),12)) || '개월' -- ROUND로 소수점 없애기
AS 근무기간
FROM C##HR.EMP;
주어진 날짜 자료 date에서 fmt를 기준으로 반올림한(ROUND) 또는 절삭한(trunc) 날짜 반환
fmt : YEAR, MONTH, DAY, DD, 월, 월요일, …

문자열, 숫자, 날짜를 지정한 형식의 문자열 변환
문자열은 CHAR, CLOB 타입을 VARCHAR2로 변환만 가능


숫자 형식의 문자열을 숫자로 반환
-부호와 .소수점 만 숫자로 변환 가능
9,957,000 을 숫자로 바꾸려면 fmt에 형식지정문자열을 써줘야함.
9,957,000 -> FMT -> C(문자열) 느낌
-날짜 형식의 문자열이나 숫자 자료를 DATE형으로 반환