我在数据库中找到了员工的中位年龄,但是我希望它能够返回年龄,而不是返回出生日期。所以基本上我希望它从当年减去员工的出生年份来获得一个年龄。 例如,我的结果显示为" 2000-01-01"其中id喜欢它显示为" 17"。我的代码如下:
AdRequest adRequestInterstitial = new AdRequest.Builder().build();
答案 0 :(得分:0)
中位年龄应该是出生日期中位数的年龄,但这并不重要。您可以在没有光标的情况下计算中位数。这是一个使用变量的方法:
select avg(timestampdiff(year, bdate, curdate()) as median
from (select e.*, (@rn := @rn + 1) as rn
from employee e cross join
(select @rn := 0) params
order by bdate
) e -- after running this, @rn has the number of rows
where @rn in (2*rn - 1, 2*rn, 2*rn + 1);
答案 1 :(得分:0)
SET median = FLOOR(DATEDIFF(now(),FLOOR(current_age))/ 365);