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

MySQL에서 생년월일(DOB)로 나이 계산하는 방법 – TIMESTAMPDIFF() 함수 활용

MySQL에서 생년월일(DOB)을 기준으로 나이를 계산하려면 TIMESTAMPDIFF() 함수를 사용하면 됩니다. 이 함수는 두 날짜 사이의 차이를 지정한 단위(년, 월, 일 등)로 반환해 주기 때문에 나이 계산에 매우 유용합니다.

TIMESTAMPDIFF() 기본 문법

select TIMESTAMPDIFF(YEAR, yourColumnName, CURRENT_DATE) AS anyAliasName from yourTableName;

그럼 실제 예제를 통해 단계별로 살펴보겠습니다.

1. 테이블 생성하기

먼저 예제에 사용할 테이블을 생성합니다.

mysql> create table DemoTable
-> (
-> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> DateOfBirth datetime
-> );
Query OK, 0 rows affected (0.73 sec)

2. 데이터 삽입하기

insert 명령어를 사용해 몇 개의 레코드를 추가합니다.

mysql> insert into DemoTable(DateOfBirth) values('1998-06-04 12:30:00');
Query OK, 1 row affected (0.18 sec)

mysql> insert into DemoTable(DateOfBirth) values('2000-01-31 04:10:20');
Query OK, 1 row affected (0.14 sec)

mysql> insert into DemoTable(DateOfBirth) values('2010-12-01 03:50:45');
Query OK, 1 row affected (0.24 sec)

3. 전체 레코드 조회하기

select 문으로 테이블에 저장된 모든 레코드를 확인합니다.

mysql> select *from DemoTable;

출력 결과

+----+---------------------+
| Id | DateOfBirth |
+----+---------------------+
| 1 | 1998-06-04 12:30:00 |
| 2 | 2000-01-31 04:10:20 |
| 3 | 2010-12-01 03:50:45 |
+----+---------------------+
3 rows in set (0.00 sec)

생년월일로 나이를 구하는 쿼리

다음은 MySQL에서 DOB 컬럼을 이용해 나이를 계산하는 쿼리입니다.

mysql> select TIMESTAMPDIFF(YEAR, DateOfBirth, CURRENT_DATE) AS YourAge from DemoTable;

출력 결과

+---------+
| YourAge |
+---------+
| 21 |
| 19 |
| 8 |
+---------+
3 rows in set (0.00 sec)

정리

TIMESTAMPDIFF(YEAR, ...)는 현재 날짜(CURRENT_DATE)와 생년월일 사이의 연도 차이를 자동으로 계산합니다. 특히 올해 생일이 아직 지나지 않은 경우에는 정확히 1을 빼서 만 나이 기준으로 값을 반환하기 때문에, 복잡한 별도의 계산 없이 간단한 쿼리 하나만으로 정확한 나이를 구할 수 있습니다.