[오라클 함수] 오라클(Oracle) 기간 내 모든 일자(날짜) 구하기

 

보통 Calendar 테이블을 만들어놓고 사용하는 경우가 많으나

없는 경우에는 쿼리를 사용하여 기간 내 모든 일자를 뽑아낼 수 있다.

 

먼저, 기간 내 일 수를 구한다.

기간 내 일 수는 TO_DATE 에서 FROM_DATE를 빼주고, 1을 더해준다.

 

<기간 내 일 수>

CONNECT BY 를 이용하여 기간 내 일 수 만큼 로우를 생성하도록 하고,

시작일부터 LEVEL -1 씩 더해가며 날짜를 구한다.

 

SELECT TO_CHAR(TO_DATE('20200901','YYYYMMDD') + (LEVEL-1), 'YYYYMMDD') AS "DATE"
  FROM DUAL
CONNECT BY LEVEL <= TO_DATE('20201002','YYYYMMDD') - TO_DATE('20200901','YYYYMMDD') + 1

 

<기간 내 일자 구하기>

캘린더 테이블이 따로 없는 경우 위와 같이 원하는 기간 내 일자를 모두 뽑아서 쿼리에서 사용하면 된다.

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기