오라클은 마지막 날짜를 구하기 위한 내장 함수가 존재합니다. 그 함수는 바로 LAST_DAY입니다. LAST_DAY는 날짜형 매개변수로 하여 해당 날짜의 마지막 날짜를 반환해 줍니다.
참고로 FIRST_DAY 함수는 존재하지 않습니다. 왜냐하면 첫 째 날은 항상 1일이기 때문입니다.
LAST_DAY
적어도 마지막 날짜를 구하고자 하는 월까지는 설정을 하도록 추천합니다. 연도만 기입이 되는 경우에는 해당 연도의 1월을 기준으로 조회합니다.
연도만 설정하는 경우
SELECT LAST_DAY (TO_DATE ('2021', 'YYYY')) AS LASTDAY FROM DUAL;
LASTDAY
--------
21/01/31
연월을 설정하는 경우
SELECT LAST_DAY (TO_DATE ('202112', 'YYYYMM')) AS LASTDAY FROM DUAL;
LASTDAY
--------
21/12/31
일반적인 LAST_DAY 사용 방법
특정 연월일 YYYYMMDD를 매개변수로 하여 해당 연월의 마지막 날짜를 구하는 방법입니다.
SELECT LAST_DAY (TO_DATE ('20211215', 'YYYYMMDD')) AS LASTDAY FROM DUAL;
LASTDAY
--------
21/12/31
현재 시스템 시간을 기준으로 하여 해당 월의 마지막 날짜를 구하는 방법은 다음과 같습니다.
SELECT LAST_DAY (SYSDATE) FROM DUAL;
LAST_DAY
--------
21/01/31
NLS_CALENDAR
반환하는 마지막 날짜는 세션의 달력(calendar) 매개변수에 따릅니다.
SELECT * FROM V$NLS_PARAMETERS WHERE PARAMETER = 'NLS_CALENDAR';
PARAMETER
--------------------------------------------------------------------------------
VALUE
--------------------------------------------------------------------------------
NLS_CALENDAR
GREGORIAN