Trong MariaDB, bạn có thể sử dụng TIMESTAMPDIFF()
hàm để tính tuổi của một người (hoặc tuổi của bất kỳ thứ gì cho vấn đề đó).
TIMESTAMPDIFF()
là một hàm ngày và giờ được tích hợp sẵn để trả về sự khác biệt giữa hai biểu thức ngày hoặc giờ. Đạt YEAR
làm đối số đầu tiên, ngày sinh làm đối số thứ hai và ngày hiện tại là đối số thứ ba, sẽ trả về tuổi tính bằng năm.
Ví dụ
Dưới đây là một ví dụ để chứng minh:
SELECT TIMESTAMPDIFF(YEAR, '1985-02-15', CURDATE()) AS Age;
Kết quả:
+------+ | Age | +------+ | 36 | +------+
Ở đây, chúng tôi sử dụng CURDATE()
để trả về ngày hiện tại.
Ví dụ về cơ sở dữ liệu
Dưới đây là một ví dụ trả về tuổi của vật nuôi trong cơ sở dữ liệu, sau đó sắp xếp kết quả theo độ tuổi theo thứ tự giảm dần:
SELECT
PetName,
DOB,
CURDATE(),
TIMESTAMPDIFF(YEAR, DOB, CURDATE()) AS Age
FROM Pets
ORDER BY Age DESC;
Kết quả:
+---------+------------+------------+------+ | 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 | +---------+------------+------------+------+
Vật nuôi dưới một tuổi có tuổi 0
.
Trong đó cột ngày sinh null
, kết quả là null
.