Hàm TIMESTAMPDIFF(unit, datetime1, datetime2) trả về chênh lệch theo đơn vị yêu cầu (YEAR, MONTH, DAY...). Dùng nó để tính tuổi chính xác từ ngày sinh đến ngày hiện tại.
Cú pháp
SELECT TIMESTAMPDIFF(YEAR, cot_ngay_sinh, CURRENT_DATE) AS Tuoi FROM ten_bang;
Ví dụ minh họa
Tạo bảng:
mysql> CREATE TABLE DemoTable (
Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
DateOfBirth DATETIME
);
Chèn dữ liệu:
mysql> INSERT INTO DemoTable(DateOfBirth) VALUES('1998-06-04 12:30:00');
mysql> INSERT INTO DemoTable(DateOfBirth) VALUES('2000-01-31 04:10:20');
mysql> INSERT INTO DemoTable(DateOfBirth) VALUES('2010-12-01 03:50:45');
Xem dữ liệu:
mysql> SELECT * FROM DemoTable;
Kết quả
+----+---------------------+ | Id | DateOfBirth | +----+---------------------+ | 1 | 1998-06-04 12:30:00 | | 2 | 2000-01-31 04:10:20 | | 3 | 2010-12-01 03:50:45 | +----+---------------------+
Tính tuổi (giả sử ngày hiện tại 2019-06-09):
mysql> SELECT TIMESTAMPDIFF(YEAR, DateOfBirth, CURRENT_DATE) AS YourAge FROM DemoTable;
Kết quả
+---------+ | YourAge | +---------+ | 21 | | 19 | | 8 | +---------+
Ưu điểm: TIMESTAMPDIFF tính đúng tuổi theo năm tháng ngày (không chỉ trừ năm), xử lý năm nhuận, múi giờ tự động.