piri 2010. 5. 19. 12:51

2010/05/19

예제 위주...


SELECT CEIL(15.7) "Ceiling" FROM DUAL;

SELECT FLOOR(15.7) "Floor" FROM DUAL;

SELECT MOD(11,4) "Modulus" FROM DUAL;

SELECT ROUND(15.193,1) "Round" FROM DUAL;

SELECT WIDTH_BUCKET(92,0,100,10) "Score" FROM dual;

SELECT TO_CHAR(ADD_MONTHS(SYSDATE, 30), 'YYYY-MM-DD') FROM dual;

SELECT LAST_DAY(SYSDATE) - SYSDATE "REMAIN DAYS" FROM dual;

SELECT EXTRACT(YEAR FROM DATE '1998-03-07') FROM DUAL;

SELECT MONTHS_BETWEEN(LAST_DAY(SYSDATE),SYSDATE) "REMAIN MONTHS" FROM DUAL;

SELECT SYSDATE FROM DUAL;

SELECT SYSTIMESTAMP FROM DUAL;

ALTER SESSION SET TIME_ZONE = '-5:00';
SELECT CURRENT_TIMESTAMP, LOCALTIMESTAMP
FROM DUAL;

-- 주민등록번호 123456-7890123
-- 123456-7******

SELECT RPAD(SUBSTR('123456-1234567',0,8),14,'*') "NUMBER"
FROM dual;

-- 월별 입사인원을 구해보자
-- 출력결과 > 월, 인원
SELECT EXTRACT(MONTH FROM hire_date), count(*)
FROM employees
GROUP BY EXTRACT(MONTH FROM hire_date)
ORDER BY EXTRACT(MONTH FROM hire_date);

-- 분기별 입사인원을 구해보자
-- 출력결과 > 분기, 인원
SELECT hire_date, WIDTH_BUCKET(EXTRACT(MONTH FROM hire_date),1,12,4)
FROM employees;

SELECT CEIL(EXTRACT(MONTH FROM hire_date)/3), COUNT(*)
FROM employees
GROUP BY CEIL(EXTRACT(MONTH FROM hire_date)/3)
ORDER BY CEIL(EXTRACT(MONTH FROM hire_date)/3);

-- 월(1년) 더하기
SELECT ADD_MONTHS(TO_DATE('2008/01/01','YYYY/MM/DD'),12)
FROM dual;