首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >来自道布的平均年龄-- MySQL / PHP

问来自道布的平均年龄-- MySQL / PHP
EN

Stack Overflow用户
提问于 2012-11-14 11:03:59
回答 3查看 9.4K关注 0票数 8

我不确定如何计算我的联系人的平均年龄,这些联系人都存在于mysql表中,其中包含一个道布日期字段,比如YYYY-MM-DD。

有没有办法处理MySQL调用(请注意,我使用的是cakephp,但这不是问题)

谢谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-11-14 11:09:17

您可以使用DATEDIFF()来确定年龄

代码语言:javascript
复制
DATEDIFF(TO_DAYS(NOW()), TO_DAYS(DOB))

平均值是使用AVG()在MySQL中找到的

代码语言:javascript
复制
AVG(Column)

所以把它们结合起来:

代码语言:javascript
复制
SELECT AVG(DATEDIFF(TO_DAYS(NOW()), TO_DAYS(DOB))) as `Average` FROM Contacts;

请注意,这将以天为单位返回平均年龄,而不是以年为单位。要获取年份,您可以对每个日期的年份部分进行平均:

代码语言:javascript
复制
SELECT AVG(DATEDIFF(YEAR(NOW()), YEAR(DOB))) as `Average` FROM Contacts;

或者像@TimDearborn建议的那样,将一天的平均值除以365.242199。

票数 9
EN

Stack Overflow用户

发布于 2013-07-11 20:51:58

这就是你的答案

代码语言:javascript
复制
SELECT AVG(TIMESTAMPDIFF(YEAR, DOB, CURDATE())) AS `Average` FROM Contacts WHERE DOB IS NOT NULL;
票数 1
EN

Stack Overflow用户

发布于 2016-05-27 00:40:07

如果你使用的是Bailey Parker的第二种方法,你就不需要做datediff。只需减去年份并取平均值即可。

代码语言:javascript
复制
SELECT AVG(YEAR(NOW())-YEAR(dob)) as `Average` FROM users;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13372395

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档