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 함수 사용)'
2. EOMONTH 함수를 사용하여 마지막 일자 구하기
1. 구문 (syntaxsql)
※ EOMONTH 함수는 SQL Server 2012(11.x) 서버 이상 버전에서만 지원합니다.

2. 예제
DECLARE @date DATE = '2022-04-20'
SELECT EOMONTH(GETDATE()) AS '현재월의 마지막 일자',
EOMONTH(@date) AS '마지막 일자',
EOMONTH(@date, 1) AS '다음달의 마지막 일자',
EOMONTH(@date, -1) AS '전달의 마지막 일자'
함께 보면 좋은 게시글
- MSSQL 특정일 요일 구하기 (DATENAME, DATEPART)
- MSSQL 원하는 날짜 및 시간 구하기 (DATEADD)
- MSSQL 데이터 형식 변환하기 (CAST 및 CONVERT)
- MSSQL 논리 연산자 BETWEEN, EXISTS, IN, LIKE, NOT 등 (WHERE 절)
- MSSQL COUNT, SUM, AVG, MAX, MIN 사용법 – 집계 함수
이 글이 도움이 되셨다면 공유 부탁 드립니다.


![[SSMS] 로컬 서버(PC)에 설치한 MSSQL 서버 연결하는 방법](https://bluesharehub.com/wp-content/uploads/2022/02/img_41.png)
