Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Calcular idade com decimais a partir da data de nascimento


Normalmente, o cálculo do DOB ​​é muito fácil no mysql quando você deseja calcular os anos sem nenhuma fração, algo como
mysql> select timestampdiff(YEAR,'1981-06-01',now());
+----------------------------------------+
| timestampdiff(YEAR,'1981-06-01',now()) |
+----------------------------------------+
|                                     33 |
+----------------------------------------+

Mas como você também precisa da fração, isso deve funcionar
mysql> select format(datediff(curdate(),'1981-06-01') / 365.25,2);
+-----------------------------------------------------+
| format(datediff(curdate(),'1981-06-01') / 365.25,2) |
+-----------------------------------------------------+
| 33.02                                               |
+-----------------------------------------------------+

Ano é considerado como 365,25 dias.

Então, no seu caso, você pode ter a consulta como
select 
format(datediff(curdate(),dob) / 365.25,2) as dob 
from players limit 5;


No