我不确定如何计算我的联系人的平均年龄,这些联系人都存在于mysql表中,其中包含一个道布日期字段,比如YYYY-MM-DD。
有没有办法处理MySQL调用(请注意,我使用的是cakephp,但这不是问题)
谢谢
发布于 2012-11-14 11:09:17
您可以使用DATEDIFF()来确定年龄
DATEDIFF(TO_DAYS(NOW()), TO_DAYS(DOB))平均值是使用AVG()在MySQL中找到的
AVG(Column)所以把它们结合起来:
SELECT AVG(DATEDIFF(TO_DAYS(NOW()), TO_DAYS(DOB))) as `Average` FROM Contacts;请注意,这将以天为单位返回平均年龄,而不是以年为单位。要获取年份,您可以对每个日期的年份部分进行平均:
SELECT AVG(DATEDIFF(YEAR(NOW()), YEAR(DOB))) as `Average` FROM Contacts;或者像@TimDearborn建议的那样,将一天的平均值除以365.242199。
发布于 2013-07-11 20:51:58
这就是你的答案
SELECT AVG(TIMESTAMPDIFF(YEAR, DOB, CURDATE())) AS `Average` FROM Contacts WHERE DOB IS NOT NULL;发布于 2016-05-27 00:40:07
如果你使用的是Bailey Parker的第二种方法,你就不需要做datediff。只需减去年份并取平均值即可。
SELECT AVG(YEAR(NOW())-YEAR(dob)) as `Average` FROM users;https://stackoverflow.com/questions/13372395
复制相似问题