sql >> Databasteknik >  >> RDS >> MariaDB

Hur man beräknar ålder i MariaDB

I MariaDB kan du använda TIMESTAMPDIFF() funktion för att beräkna en persons ålder (eller åldern på vad som helst för den delen).

TIMESTAMPDIFF() är en inbyggd datum- och tidsfunktion som returnerar skillnaden mellan två datum- eller datetime-uttryck. Passerar YEAR som det första argumentet, födelsedatum som det andra argumentet, och det aktuella datumet som det tredje, returnerar åldern i år.

Exempel

Här är ett exempel att visa:

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

Resultat:

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

Här använder vi CURDATE() för att returnera det aktuella datumet.

Databasexempel

Här är ett exempel som returnerar åldern på husdjur i en databas och sedan sorterar resultaten efter ålder i fallande ordning:

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

Husdjur som är yngre än ett år har en ålder på 0 .

Där kolumnen för födelsedatum är null , resultatet är null .


  1. Hur du misslyckas eller kraschar dina MySQL-instanser för testning

  2. Hämta poster där json-kolumnnyckeln är null

  3. En rapports egenskaper

  4. Komma igång med Oracle SQL Developer på Windows