날짜 함수 (이채남 선생님 오라클 실습 2장 중)

2016. 1. 27. 23:06

-- 1. date type + date type 의 가산은 불가능

select sysdate + birth_date

from temp

where emp_name = '홍길동';


-- 2. date type - date type 의 감산은 가능

select emp_name, sysdate-birth_date from temp

where emp_name = '홍길동';


-- 3. date type에 number type을 더하거나 빼서 날짜 계산이 가능

select emp_name, birth_date, birth_date + 1.5, birth_date - 1.5

from temp

where emp_name = '홍길동';


-- * sysdate는 초단위까지 계산되지만 기본적으로 년/월/일만 출력됨

select sysdate from dual;


-- 4. date type 출력 형식 지정 및 시, 분, 초 계산

select to_char(sysdate,'HH24:MI:SS') AS TIME,

       to_char(sysdate + 14/24, 'HH24:MI:SS') AS "14시간 후",

       to_char(sysdate + 30 / (24*60) , 'HH24:MI:SS') AS "30분후",

       to_char(sysdate + 50 / (24*60*60), 'HH24:MI:SS') AS SEC from dual;

       

-- 5. 날짜 함수의 활용 (1) ADD_MONTHS

select sysdate,

       add_months(sysdate,1), -- 한달 더하기

       add_months(sysdate,-13) -- 13개월 빼기

from   dual;


-- 6. 날짜 함수의 활용 (1) MONTHS_BETWEEN

select months_between(sysdate,birth_date) MON_TERM

from  temp

where emp_name = '홍길동';


-- 7. 연습문제 : ADD_MONTH 함수의 사용

select emp_name, round(months_between(birth_date,sysdate)) MONTHS,

       to_char(birth_date,'yyyy-mm-dd') BIRTH,

       to_char(add_months(sysdate,months_between(birth_date,sysdate)),'yyyy-mm-dd') TO_YE1,

       to_char(add_months(sysdate,trunc(months_between(birth_date,sysdate))),'yyyy-mm-dd') TO_YE2,

       to_char(add_months(sysdate,round(months_between(birth_date,sysdate))),'yyyy-mm-dd') TO_YE3 from temp;

       

-- 8. LAST_DAY --> 해당 월의 말일 산출

select emp_name, birth_date, last_day(birth_date)

from temp;

곰돌곰둘 Oracle_DB_Unix admin/미분류