MSSQL 만나이 계산하기 DATEDIFF 사용 예제

현재 나이를 계산해야 하거나 지정한 날짜를 기준으로 나이를 계산하고 싶은 경우가 있습니다.

나이 계산은 DATEDIFF 함수를 사용해 간단하게 할 수 있습니다.

DATEDIFF 함수는 두 개의 날짜를 비교해 일수를 구하는 함수입니다.

 

만나이 계산하기

나이를 구하는 방법을 보겠습니다.

만나이 계산 예제

-- 생년월일
DECLARE @BIRTHDAY DATE = '1979-03-17';
-- 나이를 알고 싶은 날짜
DECLARE @DATE DATE = GETDATE();
-- 년수 계산
DECLARE @AGE INT = (SELECT DATEDIFF(YEAR, @BIRTHDAY, @DATE));
-- 생년월일 자르기
DECLARE @D VARCHAR(8) = CONVERT(VARCHAR(8), @DATE, 112);
DECLARE @B VARCHAR(8) = CONVERT(VARCHAR(8), @BIRTHDAY, 112);
DECLARE @D2 VARCHAR(8) = LEFT(@D, 4) + RIGHT(@B, 4);

-- 만나이 계산
SET @AGE = CASE
	WHEN @D < @D2 THEN
		@AGE - 1
	ELSE
		@AGE
	END
-- 만나이 출력
SELECT @AGE

 

결과

 

생년월일을 입력해 현재 날짜를 기준으로 몇 살인지 출력하고 있습니다.

만 나이를 구하고 있기 때문에 생일 이후로 나이가 더해집니다.

현재 날짜가 아닌 지정한 날짜를 기준으로 만 나이를 알고 싶은 경우에는 GETDATE() 함수 대신에 날짜를 지정하면 됩니다.

댓글