以出生日期取得年齡

以下的SQL可以以出生日期直接計算出年齡:

SELECT name,birthday,CURDATE(),
(YEAR(CURDATE())-YEAR(birthday))-(RIGHT(CURDATE(),5)< RIGHT(birthday,5)) AS age
FROM member;

1.取得出生日期.
2.取得現時日期.
3.將現時的年份減去出生的年份.
4.使用RIGHT(),只選取月份和日期.
5.將現時的月日和出生的月日比對.
6.如果現時的月日尚未超過出生的月日,那就回傳1
7.出生年份再減去回傳的值。

沒有留言: