sql >> Base de Datos >  >> RDS >> Mysql

Calcular la edad con decimales a partir de la fecha de nacimiento

Por lo general, el cálculo de DOB es bastante fácil en mysql cuando desea calcular los años sin ninguna fracción, algo como

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

Pero como también necesitas la fracción, esto debería funcionar

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

El año se considera como 365,25 días.

Entonces, en su caso, puede tener la consulta como

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


No