DOB Field的平均年龄 - MySQL/PHP

slu*_*dog 5 mysql average date dob

我不知道如何计算我的联系人的平均年龄,这些联系人都存在于带有DOB日期字段(如YYYY-MM-DD)的mysql表中.

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

谢谢

Bai*_*ker 7

您可以使用以下方法确定年龄DATEDIFF():

DATEDIFF(TO_DAYS(NOW()), TO_DAYS(DOB))
Run Code Online (Sandbox Code Playgroud)

使用AVG()以下内容在MySQL中找到平均值:

AVG(Column)
Run Code Online (Sandbox Code Playgroud)

所以结合那些:

SELECT AVG(DATEDIFF(TO_DAYS(NOW()), TO_DAYS(DOB))) as `Average` FROM Contacts;
Run Code Online (Sandbox Code Playgroud)

请注意,这将返回以天为单位的平均年龄,而不是年份.要获得年份,您可以平均每个日期的年份:

SELECT AVG(DATEDIFF(YEAR(NOW()), YEAR(DOB))) as `Average` FROM Contacts;
Run Code Online (Sandbox Code Playgroud)

或者@TimDearborn建议,将日平均值除以365.242199.

  • 如果你想要几年的答案,除以365.242199`SELECT AVG((TO_DAYS(NOW()) - TO_DAYS(DOB)))/ 365.242199 from table;` (4认同)