mysql - DOB 字段的平均年龄 - MySQL/PHP

标签 mysql average date

我不确定如何计算我的联系人的平均年龄,他们都存在于一个带有出生日期字段(例如 YYYY-MM-DD)的 mysql 表中。

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

谢谢

最佳答案

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

DATEDIFF(TO_DAYS(NOW()), TO_DAYS(DOB))

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

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。

关于mysql - DOB 字段的平均年龄 - MySQL/PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13372395/

相关文章:

linux - 如何更改 linux/unix 文本文件中的日期格式

python - 带随机化的加权数据库查询

mysql - 启动时使用静态数据进行 Docker 集成测试

PHP 在当前日期时间上加一小时

php - 获取表 A 中几个 SQL 行(a_ID 和 avg_data)的平均值,其中在表 B 中(a_ID 按 b_ID 分组)

algorithm - 移动平均线是否保留二进制系统中和/计数商的分辨率?

iphone - 获取具体日期 - Objective c iphone

mysql - 查询将字段数据复制到另一个表

mysql - Multi-Tenancy 共享数据并按租户排除特定的默认数据

python - Python 中的两行平均值,同时忽略 NaN