sql >> Database teknologi >  >> RDS >> MariaDB

Sådan beregnes alder i MariaDB

I MariaDB kan du bruge TIMESTAMPDIFF() funktion til at beregne en persons alder (eller alderen på hvad som helst for den sags skyld).

TIMESTAMPDIFF() er en indbygget dato- og klokkeslætsfunktion, der returnerer forskellen mellem to dato- eller datetime-udtryk. Består YEAR som det første argument, fødselsdato som det andet argument, og den nuværende dato som det tredje, vil returnere alderen i år.

Eksempel

Her er et eksempel til demonstration:

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

Resultat:

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

Her bruger vi CURDATE() for at returnere den aktuelle dato.

Databaseeksempel

Her er et eksempel, der returnerer kæledyrs alder i en database, og derefter sorterer resultaterne efter alder i faldende rækkefølge:

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

Resultat:

+---------+------------+------------+------+
| 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 |
+---------+------------+------------+------+

Kæledyr, der er mindre end et år gamle, har en alder på 0 .

Hvor fødselsdatokolonnen er null , resultatet er null .


  1. SQL Grupper efter datointerval

  2. Hvordan kan jeg rette MySQL Load Error

  3. Hvordan kontrollerer jeg NLS_LANG for klienten?

  4. Hvordan kan jeg trække en liste over ID'er fra en SQL-tabel som en kommasepareret værdistreng?