sql >> Databáze >  >> RDS >> MariaDB

Jak vypočítat věk v MariaDB

V MariaDB můžete použít TIMESTAMPDIFF() funkce pro výpočet věku osoby (nebo věku čehokoli jiného).

TIMESTAMPDIFF() je vestavěná funkce data a času, která vrací rozdíl mezi dvěma výrazy data nebo datetime. Absolvování YEAR jako první argument, datum narození jako druhý argument a aktuální datum jako třetí, vrátí věk v letech.

Příklad

Zde je příklad k demonstraci:

SELECT TIMESTAMPDIFF(YEAR, '1985-02-15', CURDATE()) AS Age;

Výsledek:

+------+
| Age  |
+------+
|   36 |
+------+

Zde používáme CURDATE() vrátíte aktuální datum.

Příklad databáze

Zde je příklad, který vrátí věk domácích mazlíčků v databázi a výsledky seřadí podle věku v sestupném pořadí:

SELECT
    PetName,
    DOB,
    CURDATE(),
    TIMESTAMPDIFF(YEAR, DOB, CURDATE()) AS Age 
FROM Pets
ORDER BY Age DESC;

Výsledek:

+---------+------------+------------+------+
| PetName | DOB        | CURDATE()  | Age  |
+---------+------------+------------+------+
| Scratch | 2018-10-01 | 2021-05-30 |    2 |
| Fetch   | 2019-08-16 | 2021-05-30 |    1 |
| Wag     | 2020-03-15 | 2021-05-30 |    1 |
| Fluffy  | 2020-11-20 | 2021-05-30 |    0 |
| Tweet   | 2020-11-28 | 2021-05-30 |    0 |
| Fluffy  | 2020-09-17 | 2021-05-30 |    0 |
| Bark    | NULL       | 2021-05-30 | NULL |
| Meow    | NULL       | 2021-05-30 | NULL |
+---------+------------+------------+------+

Domácí mazlíčci mladší než rok mají věk 0 .

Kde je sloupec data narození null , výsledkem je null .


  1. CHYBA:Nelze vytvořit soubor XX.csv:Neznámá chyba

  2. Vložit data z jedné tabulky do druhé v MySQL

  3. Jak dosáhnout automatického převzetí služeb při selhání pro TimescaleDB

  4. Jak nastavím časové pásmo MySQL?