สูตรคำนวณอายุ
SELECT DATE_FORMAT(FROM_DAYS(DATEDIFF(NOW(), 'yourDateOfBirth')), '%Y') + 0 AS Age;
การทำงาน
DATEDIFF(NOW(), 'dob'): หาจำนวนวันระหว่างวันนี้กับวันเกิดFROM_DAYS(days): แปลงวันเป็น Date (จาก Year 0)DATE_FORMAT(..., '%Y'): ดึงเฉพาะปี+ 0: แปลง String '23' → Number 23
ตัวอย่าง
คำนวณอายุจาก '2010-11-25'
SELECT DATE_FORMAT(FROM_DAYS(DATEDIFF(NOW(), '2010-11-25')), '%Y') + 0 AS Age;
+------+ | Age | +------+ | 8 | +------+
ใช้กับคอลัมน์ในตาราง
mysql> create table AgeCalculationFromDatetime (YourDateofBirth datetime);
mysql> insert into AgeCalculationFromDatetime values('1995-11-25');
mysql> SELECT DATE_FORMAT(FROM_DAYS(DATEDIFF(NOW(), YourDateofBirth)), '%Y') + 0 AS Age FROM AgeCalculationFromDatetime;
+------+ | Age | +------+ | 23 | +------+
วิธีอื่น (MySQL 8.0+)
SELECT TIMESTAMPDIFF(YEAR, YourDateofBirth, NOW()) AS Age FROM AgeCalculationFromDatetime;
TIMESTAMPDIFF คำนวณตรงได้ ไม่ต้องแปลงผ่าน FROM_DAYS เร็วกว่าและแม่นยำกว่า