Mysql
 sql >> Database >  >> RDS >> Mysql

Calcola l'età con i decimali dalla data di nascita

Di solito il calcolo del DOB è abbastanza semplice in mysql quando vuoi calcolare gli anni senza alcuna frazione come

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

Ma dal momento che hai bisogno anche della frazione, questo dovrebbe fare il trucco

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

L'anno è considerato come 365,25 giorni.

Quindi nel tuo caso potresti avere la query come

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


No