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

Cách tính tuổi từ ngày sinh trong MySQL

Tính tuổi (số năm tròn) từ ngày sinh (dob) đến ngày hiện tại.

mysql> SET @dob = '1984-01-17';
Query OK, 0 rows affected (0.00 sec)

mysql> SELECT DATE_FORMAT(FROM_DAYS(TO_DAYS(CURDATE()) - TO_DAYS(@dob)), '%Y') + 0 AS 'Age in years';
+---------------+
| Age in years  |
+---------------+
| 33            |
+---------------+

Giải thích công thức:

  1. TO_DAYS(date): Chuyển ngày thành số ngày từ năm 0.
  2. TO_DAYS(CURDATE()) - TO_DAYS(@dob): Hiệu số ngày (số ngày sống).
  3. FROM_DAYS(days): Chuyển ngược thành ngày (ngày 0 + hiệu số ngày).
  4. DATE_FORMAT(..., '%Y'): Lấy phần năm của ngày kết quả (số năm tròn).
  5. + 0: Ép kiểu sang số nguyên.

Kết quả: Sinh 17/01/1984, tính đến ngày chạy truy vấn (giả sử 2017) → 33 tuổi.