📜  mysql 计算年龄 - SQL (1)

📅  最后修改于: 2023-12-03 15:03:07.331000             🧑  作者: Mango

计算年龄的SQL查询

在MySQL中,我们可以使用内置函数和日期函数来计算年龄。我们可以通过计算出生日期和当前日期之间的差值来获得年龄。

以下是一个示例查询,该查询将计算每个人的年龄,并将其显示在结果集中。

SELECT CONCAT(first_name, ' ', last_name) AS Name,
       DATE_FORMAT(birth_date, '%Y-%m-%d') AS Birthdate,
       YEAR(CURDATE()) - YEAR(birth_date) - (DATE_FORMAT(CURDATE(), '%m%d') < DATE_FORMAT(birth_date, '%m%d')) AS Age
FROM employees
ORDER BY last_name, first_name;

这个查询的关键是将出生日期转换为年龄。我们使用YEAR()函数来提取出生日期中的年份,然后通过从当前年份减去生日年份来计算年龄。最后,我们减去一个布尔值,该值将根据当前日期和出生日期的月份和日期来解决这个另一个年龄值的小偏差,并将其称为“偏移”。例如,如果某人的生日是3月15日,而今天是3月14日,则他们的年龄将比他们的生日多一岁。

请注意,在此示例中,我们还使用了CONCAT()函数和DATE_FORMAT()函数,在结果集中创建了一个合并的名称列和格式化的出生日期列。

此查询可以应用于任何包含出生日期列的表,只需将表名替换为相应的名称即可。

结论

在MySQL中计算年龄非常简单,只需使用内置函数和日期函数来计算出生日期和当前日期之间的差值即可。我们可以使用YEAR()函数来提取出生日期中的年份,并通过减去这个年份来计算年龄。最后,我们减去一个偏移值,该值会根据当前日期和出生日期的月份和日期产生差异。

让我们将此查询添加到我们的SQL工具箱中,以便我们将来可以轻松计算任何表中的年龄。