在 MariaDB 中根据生日计算年龄
本文描述了如何在 MariaDB 中使用 TIMESTAMPDIFF()
函数计算年龄。
发布于
在 MariaDB 中, TIMESTAMPDIFF()
函数用来计算两个时间之间的差。因此您可以使用它来计算年龄。
TIMESTAMPDIFF()
是一个内置的日期和时间函数,它返回两个日期或日期时间表达式之间的差值。它接受三个参数,第一个参数为返回的时间差的单位,第二个参数和第三个参数为两个日期时间值。因此如果您需要使用 TIMESTAMPDIFF()
计算年龄,第一个参数应传入 YEAR
,第二个参数传入出生日期,第三个参数传入当前日期。
示例 1
下面是一个演示示例:
SELECT TIMESTAMPDIFF(YEAR, '1988-12-10', CURDATE()) AS age;
输出:
+------+
| age |
+------+
| 33 |
+------+
在这里,我们使用了 CURDATE()
返回当前日期。
示例 2
假设我们有以下数据表 student
SELECT * FROM student;
+------------+------+------------+
| student_id | name | birthday |
+------------+------+------------+
| 1 | Tim | 2012-04-03 |
| 2 | Jim | 2013-05-06 |
| 3 | Lucy | NULL |
+------------+------+------------+
3 rows in set (0.00 sec)
让我们使用以下语句返回所有学生的年龄,然后按年龄降序对结果进行排序:
SELECT
student_id,
name,
birthday,
CURDATE(),
TIMESTAMPDIFF(YEAR, birthday, CURDATE()) AS age
FROM student
ORDER BY age DESC;
输出:
+------------+------+------------+------------+------+
| student_id | name | birthday | CURDATE() | age |
+------------+------+------------+------------+------+
| 1 | Tim | 2012-04-03 | 2022-12-06 | 10 |
| 2 | Jim | 2013-05-06 | 2022-12-06 | 9 |
| 3 | Lucy | NULL | 2022-12-06 | NULL |
+------------+------+------------+------------+------+
3 rows in set (0.00 sec)
当参数为 NULL
时, TIMESTAMPDIFF()
返回 NULL
。
结论
本文讨论了如何使用 TIMESTAMPDIFF()
函数计算年龄。