[Oracle] 해당 월의 마지막 날짜 구하기 (LAST_DAY)

오라클에서 해당 월(MONTH)의 마지막 일자를 구하기 위해서는 LAST_DAY 함수를 사용하면 된다. 월별로 마지막 일자(28일, 29일, 30일, 31일)가 틀리기 때문에 조회를 할 때마다 직접 계산을 하는 건 많이 번거롭다. LAST_DAY 함수를 사용하면 이번 달의 마지막 일자, 특정 일자에 해당하는 월의 마지막 일자를 쉽게 구할 수 있다.

 

오라클 LAST_DAY 함수

기본 사용법

SELECT LAST_DAY(TO_DATE('2022-01-17', 'YYYY-MM-DD'))
  FROM dual

 

 

특정일자에 해당하는 월의 마지막 일자를 구하는 예제이다. 1월의 마지막 일자 31일 반환된다.

 

활용 예제

이번 달 시작 일자 종료 일자 구하기

SELECT TRUNC(SYSDATE, 'MM')     AS first_day_of_month
     , LAST_DAY(TRUNC(SYSDATE)) AS last_day_of_month
  FROM dual

 

 

TRUNC 함수를 사용하면 해당 일자 월의 시작일을 쉽게 구할 수 있다. TRUNC('날짜', 'MM')

LAST_DAY 함수를 사용하여 SYSDATE 기준에 해당하는 월의 마지막 일자를 구하는 예제이다.

 

올해 월별(1월~12일) 시작 일자 종료 일자 구하기

SELECT a.first_day_of_month
     , LAST_DAY(a.first_day_of_month) AS last_day_of_month
  FROM (
          SELECT ADD_MONTHS(TO_DATE('2022-01-01', 'YYYY-MM-DD'), LEVEL - 1 ) AS first_day_of_month
            FROM dual
         CONNECT BY LEVEL <= 12
       ) a

 

 

지정한 해의 1월부터 12월까지 시작일자와 마지막 일자를 구하는 예제이다.

 

월별 입사자 조회

SELECT empno
     , ename
     , job
     , hiredate
  FROM emp
 WHERE hiredate BETWEEN TO_DATE('1981-09-01', 'YYYY-MM-DD')
                    AND LAST_DAY(TO_DATE('1981-09-01', 'YYYY-MM-DD'))
 ORDER BY hiredate

 

 

WHERE 절에서 월별 데이터를 조회할 때 자주 사용한다.

 

가끔 쿼리문을 분석하다 보면 WHERE TO_CHAR(hiredate, 'YYYYMM') = TO_CHAR(SYSDATE, 'YYYYMM')처럼 좌측의 칼럼에 함수를 사용하여 월별 데이터를 조회한 쿼리를 발견할 때가 있다. 기준 칼럼에 함수를 사용하면 인덱스를 타지 않아서 속도가 느려질 수 있으니, 위의 예제처럼 BETWEEN을 사용하여 조회하는 것이 바람직하다.

 

[오라클] TRUNC 함수 사용방법 (시간, 소수점, 절사, 트렁크)

오라클(Oracle) TRUNC 함수 사용법 TRUNC 함수는 오라클의 아주 기본적인 함수이다. 단순 절사기능만 사용했다면 아래의 다양한 옵션을 익히면 조금 더 활용도를 높일 수 있다. TRUNC 함수 TRUNC 함수는

gent.tistory.com

 

[Oracle] 오라클 BETWEEN ~ AND 범위 검색 사용법 (날짜, 문자)

오라클에서 쿼리문을 작성하다 보면 가장 많이 사용하는 연산자 중 하나는 BETWEEN일 것이다. BETWEEN은 날짜, 숫자의 범위 검색에 아주 유용하게 사용할 수 있으며, 문자의 범위 검색도 가능하다.

gent.tistory.com

 

[Oracle] 오라클 ADD_MONTHS 함수 사용법 (이전달, 다음달, 월빼기)

오라클에서 날짜의 월을 빼거나 더하기 위해서는 ADD_MONTHS 함수를 사용한다. 날짜의 일은 변경되지 않으며 연산값에 따라서 년도와 월만 변경이 된다. 함수를 사용하면서 주의할 점은 날짜의 이

gent.tistory.com

 

댓글

Designed by JB FACTORY