Công thức chuẩn:
SELECT DATE_FORMAT(FROM_DAYS(DATEDIFF(NOW(), 'ngày_sinh')), '%Y') + 0 AS Tuổi;
Giải thích:
DATEDIFF(NOW(), ngày_sinh)– số ngày chênh lệch.FROM_DAYS(số_ngày)– chuyển thành date từ năm 0.DATE_FORMAT(..., '%Y')– lấy phần năm.+ 0– ép kiểu sang số.
Ví dụ: sinh '1995-11-25', năm 2018 → 23 tuổi.
Cách đơn giản hơn (MySQL 8.0+): TIMESTAMPDIFF(YEAR, ngày_sinh, CURDATE()).