利用MySQL (InnoDB)计算年龄
本文介绍如何使用MySQL的TIMESTAMPDIFF
函数根据数据库中存储的出生日期计算年龄。
问题:
假设出生日期以'dd-mm-yyyy'格式存储,我们需要确定:
解决方案:
日期格式:
MySQL将当前日期减去另一个日期后返回的日期格式为默认的MySQL日期时间格式:YYYY-MM-DD HH:MM:SS。
计算年龄:
我们可以使用TIMESTAMPDIFF
函数计算两个日期在不同单位(包括年)上的差值。示例如下:
<code class="language-sql">SELECT TIMESTAMPDIFF(YEAR, '1970-02-01', CURDATE()) AS age;</code>
此查询计算1970年2月1日与当前日期之间的差值,并以年为单位返回年龄。
示例:
考虑一个表,其中包含一个名为'date_of_birth'的列,格式为'dd-mm-yyyy':
<code class="language-sql">CREATE TABLE persons ( id INT PRIMARY KEY, name VARCHAR(255), date_of_birth DATE ); INSERT INTO persons (name, date_of_birth) VALUES ('John Doe', '1970-02-01'), ('Jane Doe', '1975-04-15');</code>
要计算'John Doe'的年龄,我们将运行以下查询:
<code class="language-sql">SELECT TIMESTAMPDIFF(YEAR, date_of_birth, CURDATE()) AS age FROM persons WHERE name = 'John Doe';</code>
此查询将返回结果:
<code>age 51</code>
以上是如何使用 MySQL 从出生日期计算年龄?的详细内容。更多信息请关注PHP中文网其他相关文章!