ORACLE数据库:

FLOOR(MONTHS_BETWEEN(SYSDATE,出生日期)/12)

KINGBASE数据库:

DATEDIFF(MONTH,出生日期,CURRENT_TIMESTAMP)/12

DB2数据库:

TIMESTAMPDIFF(64,CHAR(CURRENT DATE - TIMESTAMP(出生日期)))/12

MYSQL数据库:

SELECT (YEAR(CURDATE())-YEAR('2000-01-01'))-(RIGHT(CURDATE(),5<RIGHT('2000-01-01',5)) AS age

YEAR()提取日期的年部分,RIGHT()提取日期的MM-DD (日历年)部分的最右面5个字符。比较MM-DD值的表达式部分的值一般为1或0,如果CURDATE()的年比birth的年早,则年份应减去1。

更多推荐

数据库 根据出生日期计算年龄的sql几种数据库写法