gpt4 book ai didi

mysql - 从出生日期计算带小数的年龄

转载 作者:可可西里 更新时间:2023-11-01 07:02:36 24 4
gpt4 key购买 nike

我的 MySQL 表中有一个类型为 date 的 dob 字段。一个小而简单的例子是这样的:

mysql> select dob from players limit 5;
+------------+
| dob |
+------------+
| 1983-12-02 |
| 1979-01-01 |
| 1989-05-11 |
| 1976-03-24 |
| 1989-09-12 |
+------------+

我正在尝试使用今天的日期来计算带小数点的年龄。所以从技术上讲,如果您的生日是 1981 年 6 月 1 日或 1981-06-01,那么您就是 33 岁,而今天是 6 月 7 日。您将是 33.(6/365) 或 33.02 岁。 使用 SQL 计算此值的最简单方法是什么?

最佳答案

当你想计算没有任何分数的年份时,通常在 mysql 中 DOB 计算非常容易

mysql> select timestampdiff(YEAR,'1981-06-01',now());
+----------------------------------------+
| timestampdiff(YEAR,'1981-06-01',now()) |
+----------------------------------------+
| 33 |
+----------------------------------------+

但是既然你还需要分数,那么这应该可以解决问题

mysql> select format(datediff(curdate(),'1981-06-01') / 365.25,2);
+-----------------------------------------------------+
| format(datediff(curdate(),'1981-06-01') / 365.25,2) |
+-----------------------------------------------------+
| 33.02 |
+-----------------------------------------------------+

年被视为 365.25 天。

所以在你的情况下你可能有这样的查询

select 
format(datediff(curdate(),dob) / 365.25,2) as dob
from players limit 5;

关于mysql - 从出生日期计算带小数的年龄,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24099562/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com