본문 바로가기
데이터베이스/MSSQL

MSSQL 개월 차이에 대해서

by Dokon Jang 2022. 5. 24.
반응형

MSSQL에서 두 날짜의 개월 차이를 구하는 함수로 DATEDIFF를 사용하면 됩니다.

하지만, DATEDIFF를 사용하면 일자까지를 계산하는 것이 아닌 단순히 월의 차이만을 구합니다.

즉, 올림을 하는 현상이 발생합니다.

아래의 쿼리는 8.x로 계산이 되어야 하지만, 월만으로 계산하여 9개월 나옵니다.

SELECT DATEDIFF(MONTH, CONVERT(DATE, '20150529'), CONVERT(DATE, '20160201'))

 

개월수를 버림으로 처리하고 싶다면 아래의 쿼리로 처리해야 합니다.

결과는 8개월이 됩니다.

SELECT CASE WHEN DATEPART(DAY, CONVERT(DATE, '20150529')) > DATEPART(DAY, CONVERT(DATE, '20160201'))
       THEN DATEDIFF(MONTH, CONVERT(DATE, '20150529'), CONVERT(DATE, '20160201')) - 1
       ELSE DATEDIFF(MONTH, CONVERT(DATE, '20150529'), CONVERT(DATE, '20160201'))
       END

※ 필요에 따라 위의 두 쿼리를 활용하면 되며, 반드시 DATEDIFF는 올림을 한다는 것을 기억해야겠습니다.

반응형

댓글