我的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-06-01,那么您33岁,今天是6月7日。您将33.(6/365) or 33.02 years old.
使用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;
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句