1. 程式人生 > 其它 >mysql根據出生日期算每個人年齡

mysql根據出生日期算每個人年齡

網上面列舉了很多方法,但是也都各自說明了一下弊端在哪裡,所以我這裡只記錄其中我認為最好的一個,

SELECT  TIMESTAMPDIFF(YEAR, @birthday, CURDATE())

算是最佳方法,暫時.涉及到兩個函式.

這裡也說明一下第一個函式TIMESTAMPDIFF()是如何使用的.

TIMESTAMPDIFF用法:
TIMESTAMPDIFF(interval,datetime_expr1,datetime_expr2)
返回日期或日期時間表達式datetime_expr1 和datetime_expr2the 之間的整數差。

mysql> SELECT TIMESTAMPDIFF(MONTH
,'2009-12-01','2009-09-01'); mysql> SELECT TIMESTAMPDIFF(YEAR,'2009-05-01','2008-01-01'); select TIMESTAMPDIFF(SECOND,DATE_FORMAT(NOW(),'%Y-%m-%d %H:%i:%s'),'2013-03-07 15:43:00') from dual SELECT DATE_FORMAT(MIN(entertime),'%Y-%m-%d') as startDt, DATE_FORMAT(MAX(entertime), '%Y-%m-%d') as endDt FROM table

下面是可以放那些值:

  1. FRAC_SECOND。表示間隔是毫秒
  2. SECOND。秒
  3. MINUTE。分鐘
  4. HOUR。小時
  5. DAY。天
  6. WEEK。星期
  7. MONTH。月
  8. QUARTER。季度
  9. YEAR。年

SELECTTIMESTAMPDIFF(YEAR, @birthday, CURDATE())