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

Beregn alder med decimaler fra fødselsdato

Normalt er DOB-beregning ret let i mysql, når du vil beregne årene uden nogen brøk noget som

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

Men da du også har brug for brøken, burde dette gøre tricket

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

År betragtes som 365,25 dage.

Så i dit tilfælde har du muligvis forespørgslen som

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


  1. Sådan repareres MySql:indekskolonnestørrelsen er for stor (Laravel migrerer)

  2. PostgreSQL returnerer en funktion med en brugerdefineret datatype

  3. Minimering af virkningen af ​​at udvide en IDENTITY-søjle – del 3

  4. Hvordan undslipper jeg % i Knex hvor gerne forespørgsel?