Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL에서 생년월일로 나이 계산하는 방법 완벽 가이드

MySQL에서 생년월일로 나이 계산하기

MySQL에서는 DATE_FORMAT() 함수를 활용하면 생년월일을 기준으로 나이를 간단하게 계산할 수 있습니다. 핵심 원리는 now() 함수로 현재 날짜와 시간을 구한 뒤, 생년월일과의 차이를 일(day) 단위로 계산하고, 이를 다시 연도 형식으로 변환하는 것입니다.

사용되는 주요 함수 살펴보기

나이 계산에 사용되는 각 함수의 역할은 다음과 같습니다.

  • now(): 현재 날짜와 시간을 반환합니다.
  • DATEDIFF(): 두 날짜 사이의 일수 차이를 계산합니다.
  • FROM_DAYS(): 일수를 날짜 값으로 변환합니다.
  • DATE_FORMAT(…, '%Y'): 날짜에서 연도 부분만 추출합니다.

마지막에 +0을 더해주면 문자열 형태의 연도가 숫자형으로 변환되어 깔끔한 결과를 얻을 수 있습니다.

기본 문법

SELECT DATE_FORMAT(FROM_DAYS(DATEDIFF(now(), '생년월일')), '%Y')+0 AS 별칭;

직접 쿼리 실행해 보기

위 문법에서 '생년월일' 부분에 실제 날짜를 넣으면 됩니다. 예를 들어 2010년 11월 25일생의 나이를 계산하는 쿼리는 다음과 같습니다.

SELECT DATE_FORMAT(FROM_DAYS(DATEDIFF(now(),'2010-11-25')), '%Y')+0 AS Age;

실행 결과는 다음과 같습니다.

+------+
| Age  |
+------+
|    8 |
+------+
1 row in set (0.00 sec)

테이블을 만들어 실전 예제 진행하기

이번에는 실제 테이블에 저장된 생년월일 데이터로 나이를 계산해 보겠습니다. 먼저 테이블을 생성합니다.

mysql> create table AgeCalculationFromDatetime
   -> (
   -> YourDateofBirth datetime
   -> );
Query OK, 0 rows affected (0.52 sec)

다음으로 테이블에 생년월일 데이터를 삽입합니다.

mysql> insert into AgeCalculationFromDatetime values('1995-11-25');
Query OK, 1 row affected (0.13 sec)

SELECT 문으로 저장된 모든 레코드를 확인해 보겠습니다.

mysql> select *from AgeCalculationFromDatetime;

실행 결과는 아래와 같습니다.

+---------------------+
| YourDateofBirth     |
+---------------------+
| 1995-11-25 00:00:00 |
+---------------------+
1 row in set (0.00 sec)

테이블 데이터로 나이 계산하기

이제 저장된 생년월일 컬럼을 기준으로 나이를 계산하는 쿼리를 실행합니다.

mysql> SELECT DATE_FORMAT(FROM_DAYS(DATEDIFF(now(),YourDateofBirth)), '%Y')+0 AS Age from AgeCalculationFromDatetime;

실행 결과는 다음과 같습니다.

+------+
| Age  |
+------+
|   23 |
+------+
1 row in set (0.00 sec)

정리

이처럼 MySQL에서는 DATEDIFF(), FROM_DAYS(), DATE_FORMAT() 세 가지 함수를 조합하면 별도의 복잡한 로직 없이도 생년월일로부터 정확한 나이(만 나이 기준의 연도 차이)를 손쉽게 구할 수 있습니다. 회원 관리 시스템이나 프로필 정보 처리 등 다양한 실무 상황에서 유용하게 활용할 수 있습니다.