Computer >> Máy Tính >  >> Lập trình >> MySQL

Tính Tuổi từ Ngày sinh đã cho trong MySQL?

Để tính tuổi trong MySQL từ Ngày sinh, bạn có thể sử dụng cú pháp sau -

SELECT YEAR(CURRENT_TIMESTAMP) - YEAR(yourColumnName)
- (RIGHT(CURRENT_TIMESTAMP, 5) < RIGHT(yourColumnName, 5)) as anyVariableName from yourTableName;

Để hiểu khái niệm trên, chúng ta hãy tạo một bảng. Sau đây là truy vấn để tạo bảng.

mysql> create table AgeCalculatesDemo
   −> (
   −> YourDateOfBirth datetime
   −> );
Query OK, 0 rows affected (0.50 sec)

Chèn một số bản ghi trong bảng với sự trợ giúp của lệnh insert. Các bản ghi này là DOB mà qua đó chúng tôi sẽ tính tuổi. Sau đây là truy vấn -

mysql> insert into AgeCalculatesDemo values(date_add(now(),interval 22 year));
Query OK, 1 row affected (0.23 sec)

mysql> truncate table AgeCalculatesDemo;
Query OK, 0 rows affected (0.89 sec)

mysql> insert into AgeCalculatesDemo values(date_add(now(),interval -22 year));
Query OK, 1 row affected (0.16 sec)

mysql> insert into AgeCalculatesDemo values(date_add(now(),interval -12 year));
Query OK, 1 row affected (0.18 sec)

mysql> insert into AgeCalculatesDemo values(date_add(now(),interval -19 year));
Query OK, 1 row affected (0.15 sec)

mysql> insert into AgeCalculatesDemo values('2010-4-05');
Query OK, 1 row affected (0.25 sec)

Bây giờ bạn có thể hiển thị tất cả các bản ghi với sự trợ giúp của câu lệnh select. Sau đây là truy vấn -

mysql> select *from AgeCalculatesDemo;

Sau đây là kết quả -

+---------------------+
| YourDateOfBirth     |
+---------------------+
| 1996-12-06 23:35:26 |
| 2006-12-06 23:35:32 |
| 1999-12-06 23:35:42 |
| 2010-04-05 00:00:00 |
+---------------------+
4 rows in set (0.00 sec)

Đây là truy vấn có thể được sử dụng để tính tuổi.

mysql> SELECT YEAR(CURRENT_TIMESTAMP) - YEAR(YourDateOfBirth)
   −> - (RIGHT(CURRENT_TIMESTAMP, 5) < RIGHT(YourDateOfBirth, 5)) as YourAge
   −> from AgeCalculatesDemo;

Sau đây là đầu ra hiển thị tuổi -

+---------+
| YourAge |
+---------+
|      22 |
|      12 |
|      19 |
|       8 |
+---------+
4 rows in set (0.00 sec)