본문 바로가기
프로그래밍

날짜함수

by 탁구치는 개발자 2009. 2. 21.

쿼리 작성을 거의 안하다보니 함수고 조인이고 분석함수고 다 까먹게 생겼다. 아무래도 내 티스토리에 저장하여 간간히 보도록 해야겠당..ㅠㅠ

-- 더하고 뺄때 날짜가 더해지거나 빼진다.

select sysdate, sysdate + 1, sysdate - 1

  from temp

 where emp_name = '홍길동'

 

-- , , 등을 더함.

select to_char(birth_date, 'HH24:MI:SS') birth_time,

       to_char(birth_date + 14/24, 'HH24:MI:SS') as time,

       to_char(birth_date + 30/(24*60), 'HH24:MI:SS') as min,

       to_char(birth_date + 50/(24*60*60), 'HH24:MI:SS') as sec

  from temp

 where emp_name = '홍길동';

 

-- 주어진 일자에 개월 단위의 가감을 원할 사용 한다.

select birth_date,

       add_months(birth_date, 1),

       add_months(birth_date, -13)

  from temp

 where emp_name = '홍길동';

 

-- 주어진 두개의 일자 간격이 개월인지 보여준다.

select months_between(sysdate, birth_date) mon_term

  from temp

 where emp_name = '홍길동';

 

 

select months_between(birth_date, sysdate) a,

       birth_date b,

       add_months(sysdate, months_between(birth_date, sysdate)) c,

       add_months(sysdate, trunc(months_between(birth_date, sysdate))) d,

       add_months(sysdate, round(months_between(birth_date, sysdate))) e,

       trunc(months_between(birth_date, sysdate)) f,

       round(months_between(birth_date, sysdate)) g

  from temp

 

 

-- 주어진 일자가 포함된 월의 말일을 돌려준다.

select birth_date, last_day(birth_date)

  from temp;

 

 

-- 지정된 단위로 반올림, 연도라면 연도단위로 반올림

select birth_date,

       round(birth_date, 'YEAR'),

       round(birth_date, 'MONTH'),

       round(birth_date, 'DAY')

  from temp;