매월 첫번째 월요일에만 작업이 돌아야 하는 경우가 생겼다..


오라클 SQL에서 매월 첫번째 월요일을 구하는 방법을 알아보자..


일단 

TRUNC(date,char) SYSDATE를 년,월,날  기준으로 잘라버린다..

NEXT_DAY(date,char) 함수는 date로부터 그 다음주 char로 명시한 요일을 출력한다.


이 두함수를 이용해서 날을 구해보았다..


SELECT  TRUNC(SYSDATE,'MONTH') FROM DUAL

UNION ALL

SELECT  TRUNC(SYSDATE,'MONTH')-1 FROM DUAL

UNION ALL

SELECT NEXT_DAY((TRUNC(SYSDATE,'MONTH')-1),'월') FROM DUAL


결과는..

2014/03/01 00:00:00

2014/02/28 00:00:00

2014/03/03 00:00:00


TRUNC함수를 이용해서 당월 1일을 구하고

-1을 해서 전월 마지막 날을 구한후에

NEXT_DAY함수를 이용해서 다음주 월요일을 구하면 당월 첫번째 월요일을 구할 수 있다.

Posted by 무세1
,