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。