Data Modeling Evangelist Kaien Kim's Blog
[Oracle]현재월의 첫 특정요일, 마지막 주 특정요일 가져오기 본문
우리가 가끔 날짜관련 계산을 하다보면 첫번째 월요일이라든가 마지막 주 월요일이라든가...
뭐 이런 날을 가져와야 할 경우가 있다. 그전에는 날짜 테이블이 있어 쉽게 가져올 수 가있었는데
그렇지 않은 경우는 천상 쿼리로 구현할 수 밖에 없다.
여기에서 핵심 함수는 last_day(date), next_day(date,char) 이다.
그 용법은 간단히 소개하면
last_day()
: 지정한 일자가 포함된 월의 말일
예)
select last_day(sysdate) from dual -- 지금은 2009년3월20일이다.
09/03/31
next_day(date,char)
: 지정한 일자 다음에 나타나는 지정 요일(두번째 인수)
예)
select next_day((last_day(sysdate)),'금요일') from dual
select next_day((last_day(sysdate)),'금') from dual
select next_day((last_day(sysdate)),6) from dual -- 일:1 ~ 토:7
09/04/03
뭐 이런식이다
위의 함수를 응용하면 2009년3월의 첫번째 월요일과 마지막주 월요일은 아래와 같이
구할 수 있다.
-- 첫주 월요일
select next_day((trunc(sysdate,'mm')-1),'월') from dual
-- 마지막주 월요일
select next_day((last_day(sysdate)-7),'월') from dual
'DATA > Oracle' 카테고리의 다른 글
[Oracle]Oracle DBA Scripts (0) | 2011.06.19 |
---|---|
성능 문제에 대한 정확한 이해는 용어에 대한 정확한 이해에서부터 온다. (0) | 2009.11.26 |
Full Outer Join (0) | 2009.02.24 |
오라클 테이블 락 ( Table lock ) (0) | 2009.01.30 |
ORA-28000 발생시 해결법 (2) | 2009.01.30 |