年龄计算 - 来自时间戳字段的最快年龄计算公式

时间:2012-04-25 20:18:42

标签: mysql

我正在使用此查询来计算用户年龄:

SELECT 
((YEAR(CURDATE())-YEAR(um.date_birth)) - (RIGHT(CURDATE(),5)<RIGHT(um.date_birth,5))) 
FROM user_meta AS um
WHERE um.uid = 2

我想知道是否有最快/更轻的方法。 我正在使用嵌套在更大的选择中,所以我不介意以某种方式提高整体性能。谢谢。

2 个答案:

答案 0 :(得分:1)

如果您发现需要经常计算字段,我建议您更改表格以添加新列以方便您的计算。

例如,不是计算每个查询中每个出生日期的年份,而是简单地添加YEAR列,用出生年份更新表ONCE,并将年份存储为INT。

这样,每次你需要赶上一年,只需选择字段。

答案 1 :(得分:1)

select (CURDATE()-birth_dt)/365 from dual