MSSQL 월의 시작 일자, 마지막 일자 구하기 – EOMONTH 함수
MS SQL 쿼리문에서 월의 시작 일자, 마지막 일자를 구할 때가 많이 있습니다. 특히 저장 프로시저, 함수로 로직을 개발할 때 월의 시작 일자와 마지막 일자를 구해서 처리할 때가 많죠. EOMONTH 함수를 사용하면 월의 마지막 일자를 싶게 구할 수 있습니다.
그럼 간단한 예제로 월의 시작 일자와 마지막 일자를 구하는 방법에 대해서 알아보죠.
◎ 포스트 기준 – Microsoft SQL Server 2019, SSMS 18.11
1. 월의 시작 일자, 마지막 일자 구하기
DECLARE @date DATE = '2022-04-20'
SELECT CAST(LEFT(CONVERT(NVARCHAR, @date, 112), 6) + '01' AS DATE) AS '월의 시작 일자',
DATEADD(D, -1, CAST(LEFT(CONVERT(NVARCHAR, DATEADD(M, 1, @date), 112), 6) + '01' AS DATE)) AS '월의 마지막 일자(EOMONTH 함수 미사용)',
EOMONTH(@date) AS '월의 마지막 일자(EOMONTH 함수 사용)'
![월의 시작 일자, 마지막 일자 구하기 예제](https://bluesharehub.com/wp-content/uploads/2022/05/img_1-2.png)
![월의 시작 일자, 마지막 일자 구하기 예제](https://bluesharehub.com/wp-content/uploads/2022/05/img_1-2.png)
2. EOMONTH 함수를 사용하여 마지막 일자 구하기
1. 구문 (syntaxsql)
※ EOMONTH 함수는 SQL Server 2012(11.x) 서버 이상 버전에서만 지원합니다.
![구문 (syntaxsql)](https://bluesharehub.com/wp-content/uploads/2022/05/img_2-3.png)
![구문 (syntaxsql)](https://bluesharehub.com/wp-content/uploads/2022/05/img_2-3.png)
2. 예제
DECLARE @date DATE = '2022-04-20'
SELECT EOMONTH(GETDATE()) AS '현재월의 마지막 일자',
EOMONTH(@date) AS '마지막 일자',
EOMONTH(@date, 1) AS '다음달의 마지막 일자',
EOMONTH(@date, -1) AS '전달의 마지막 일자'
![EOMONTH 함수를 사용하여 마지막 일자 구하기 예제](https://bluesharehub.com/wp-content/uploads/2022/05/img_3-3.png)
![EOMONTH 함수를 사용하여 마지막 일자 구하기 예제](https://bluesharehub.com/wp-content/uploads/2022/05/img_3-3.png)
이 글이 도움이 되셨다면 공유를 부탁드립니다. 다음 글에서 뵙겠습니다!