sql >> Databáze >  >> RDS >> Mysql

Vypočítejte věk s desetinnými místy od data narození

Obvykle je výpočet DOB v mysql docela snadný, když chcete vypočítat roky bez zlomku něco jako

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

Ale protože potřebujete také zlomek, pak by to mělo stačit

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

Rok je považován za 365,25 dne.

Takže ve vašem případě můžete mít dotaz jako

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


  1. Jak mohu vložit mnoho řádků do tabulky MySQL a vrátit nová ID?

  2. Oddělení obsahu MySQL pomocí PHP na základě preferencí jednotlivých zemí/uživatelů

  3. Jak vytvořit správnou třídu rozšíření mysqli s připravenými příkazy?

  4. Entity Framework Core count nemá optimální výkon