从出生日期起用小数点计算年龄

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

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年6月1日,让你33,今天是6月7日..你会是33.(6/365)

or 33.02 years old.什么来计算这个使用SQL最简单的方法?

回答:

通常,当您要计算年份而没有任何分数时,DOB计算在mysql中非常容易

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;

以上是 从出生日期起用小数点计算年龄 的全部内容, 来源链接: utcz.com/qa/434303.html

回到顶部