Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Tính tuổi từ ngày sinh trong MySQL

Sử dụng hàm TIMESTAMPDIFF() với đơn vị YEAR để tính tuổi chính xác từ cột ngày sinh.

Cú pháp

SELECT TIMESTAMPDIFF(YEAR, cotNgaySinh, NOW()) AS Tuoi FROM tenBang;

Ví dụ

Tạo bảng sinh viên:

mysql> create table DemoTable ( 
    StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY, 
    StudentDOB datetime 
); 
Query OK, 0 rows affected (0.61 sec)
mysql> insert into DemoTable(StudentDOB) values('1996-01-12'); 
Query OK, 1 row affected (0.13 sec) 
mysql> insert into DemoTable(StudentDOB) values('1990-12-31'); 
Query OK, 1 row affected (0.12 sec) 
mysql> insert into DemoTable(StudentDOB) values('1989-04-01'); 
Query OK, 1 row affected (0.45 sec) 
mysql> insert into DemoTable(StudentDOB) values('2000-06-17'); 
Query OK, 1 row affected (0.16 sec)

Tính tuổi:

mysql> select timestampdiff(YEAR,StudentDOB,now()) AS AGE from DemoTable;
+------+
| AGE  |
+------+
| 23   |
| 28   |
| 30   |
| 18   |
+------+

Tại sao dùng TIMESTAMPDIFF thay vì DATEDIFF/365? TIMESTAMPDIFF(YEAR, ...) tính đúng theo năm dương lịch (xem xét tháng/ngày), trong khi DATEDIFF/365 sai lệch do năm nhuận.