1. MONTHS_BETWEEN
달수와 달수 사이를 구한다.
1 2 3 4 5 6 7 | -- MONTHS_BETWEEN SELECT MONTHS_BETWEEN ( TO_DATE('2017-07-01','YYYY-MM-DD') , TO_DATE('2017-06-01','YYYY-MM-DD') ) AS MONTHS_BETWEEN FROM DUAL | cs |
출력 결과
2. ADD_MONTHS
달수를 더한다.
1 2 3 | -- ADD_MONTHS SELECT ADD_MONTHS(TO_DATE('2017-07-01','YYYY-MM-DD'),1) AS ADD_MONTHS FROM DUAL | cs |
출력 결과
3. NEXT_DAY
기준날짜에서 요일을 찾아 몇일인지 반환한다.
1 2 3 | -- NEXT_DAY SELECT NEXT_DAY(TO_DATE('2017-06-05','YYYY-MM-DD'),'FRIDAY') FROM DUAL | cs |
출력 결과
4. LAST_DAY
기준날짜에서 마지막 날을 출력한다.
1 2 3 | -- LAST_DAY SELECT LAST_DAY(TO_DATE('2017-06-01','YYYY-MM-DD')) FROM DUAL | cs |
출력 결과
5. TO_DATE
DATE 형식으로 출력한다.
1 2 3 4 5 6 7 8 9 10 11 12 | -- TO_DATE1 SELECT TO_DATE('2017-06-01','YYYY-MM-DD') MDATE1 , TO_DATE('2017/06/01','YYYY/MM/DD') MDATE2 , TO_DATE('20170601','YYYY-MM-DD') MDATE3 , TO_DATE('20170601','YYYYMMDD') MDATE4 , TO_DATE('20170601112030','YYYYMMDDHH12MISS') MDATE5 , TO_DATE('20170601232030','YYYYMMDDHH24MISS') MDATE6 , TO_DATE('2017-06-01-11-20-30','YYYY-MM-DD-HH12-MI-SS') MDATE7 , TO_DATE('2017-06-01-23-20-30','YYYY-MM-DD-HH24-MI-SS') MDATE8 , TO_DATE('2017/06/01/11/20/30','YYYY/MM/DD/HH12/MI/SS') MDATE9 , TO_DATE('2017/06/01/23/20/30','YYYY/MM/DD/HH24/MI/SS') MDATE10 FROM DUAL | cs |
출력 결과
1 2 3 4 5 6 7 8 9 10 11 12 13 | -- TO_DATE2 SELECT TO_DATE(SYSDATE,'YYYY-MM-DD') MDATE1 , SYSDATE MDATE2 , TO_CHAR(SYSDATE) MDATE3 , TO_CHAR(SYSDATE,'YYYY-MM-DD') MDATE4 , TO_CHAR(SYSDATE,'YYYY/MM/DD') MDATE5 , TO_DATE(TO_CHAR(SYSDATE,'YYYY-MM-DD'),'YYYY-MM-DD') MDATE6 , TO_DATE(TO_CHAR(SYSDATE,'YYYY/MM/DD'),'YYYY/MM/DD') MDATE7 , TO_CHAR(SYSDATE,'YYYY-MM') MDATE8 , TO_CHAR(SYSDATE,'YYYY/MM') MDATE9 , TO_CHAR(SYSDATE,'MM') MDATE10 , TO_CHAR(SYSDATE,'DD') MDATE11 FROM DUAL | cs |
출력 결과
6. DECODE
DECODE(VALUE, IF1, THEN1, IF2, THEN2)
DECODE 함수는 조건에 따라 데이터를 다른 값이나 컬럼값으로 추출 할 수 있다.
DECODE(VALUE, IF1, THEN1, IF2, THEN2...) 형태로 사용 할 수 있다.
VALUE 값이 IF1일 경우에 THEN1 값을 반환하고, VALUE 값이 IF2일 경우에는 THEN2 값을 반환한다.
DECODE 함수 안에 DECODE함수를 중첩으로 사용 할 수 있다.
1 2 3 4 | SELECT DEPTNO , DECODE(DEPTNO, 10, 'CLERK',20, 'MANAGER',30, 'SALESMAN') AS DECODE , DECODE(DEPTNO, 10, SAL) FROM EMP; | cs |
출력 결과
7. CASE
CASE
WHEN
THEN
ELSE
END 컬럼명
CASE 함수는 DECODE함수가 제공하지 못하는 비교연산의 단점을 해결할 수 있는 함수이다.
DECODE함수에서 비교연산을 수행하기 위해서는 GREATEST, LEAST등의 함수를 사용해야 하지만, CASE함수에서는 조건 연산자를 모두 사용 할 수 있다.
CASE함수는 IF.. THEN .. ELSE 구문과 비슷 하다. WHEN절 다음에 여러 조건이 올 수 있다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | SELECT JOB , CASE WHEN JOB='CLERK' THEN 'MY_CLERK' END JOB1 , SAL , CASE WHEN SAL<1000 THEN SAL+200 END SAL1 , HIREDATE , CASE WHEN HIREDATE<TO_DATE('1981-03-01','YYYY-MM-DD') THEN ADD_MONTHS(HIREDATE,1) END HIREDATE1 FROM EMP | cs |
출력 결과
'전체 > Oracle' 카테고리의 다른 글
클러스터 테이블, 언클러스터 테이블 (0) | 2017.06.15 |
---|---|
ORACLE SUM, AVG, MAX, MIN, COUNT, GROUP BY, HAVING, ROUND, TRUNC, IN / ALL / ANY / SOME / EXISTS (0) | 2017.06.13 |
ORACLE DUAL, 문자처리 함수(UPPER, LOWER, INITCAP, INSTR, SUBSTR, LPAD, RPAD, LTRIM, RTRIM) 정리 (0) | 2017.06.12 |
ORACLE ESCAPE, NVL, NVL2, ORDER BY, DISTINCT 정리 (0) | 2017.06.12 |
ORACLE 산술, 비교, 논리, 기타 연산자 정리 AND,OR,NOT,BETWEEN,IN,LIKE (0) | 2017.06.12 |