Tóm tắt
Dùng ORDER BY cot_timestamp DESC LIMIT 1 để lấy hàng có timestamp lớn nhất (mới nhất).
Cú pháp
SELECT cot1, cot2, ... FROM bang ORDER BY cot_timestamp DESC LIMIT 1;
Ví dụ
1. Tạo bảng
CREATE TABLE MostRecentDateDemo (
Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
Name VARCHAR(10),
ShippingDate TIMESTAMP
);
2. Dữ liệu
INSERT INTO MostRecentDateDemo (Name, ShippingDate) VALUES
('Larry', DATE_ADD(NOW(), INTERVAL -1 MONTH)),
('Mike', '2018-09-12 19:34:45'),
('Sam', '2017-11-24 14:30:40'),
('Carol', '2019-02-12 11:30:41'),
('David', NOW()),
('John', '2018-12-31 12:59:58');
3. Truy vấn
SELECT Id, Name, ShippingDate
FROM MostRecentDateDemo
ORDER BY ShippingDate DESC LIMIT 1;
4. Kết quả (David, NOW mới nhất)
+----+-------+---------------------+
| Id | Name | ShippingDate |
+----+-------+---------------------+
| 5 | David | 2019-02-14 17:19:34 |
+----+-------+---------------------+
Mở rộng: MAX trên nhiều cột timestamp
Nếu có nhiều cột timestamp trong cùng hàng (created_at, updated_at, deleted_at) và muốn lấy max của chúng:
SELECT GREATEST(created_at, updated_at, deleted_at) AS latest_ts FROM bang;
-- GREATEST bỏ qua NULL, trả về NULL nếu tất cả NULL
Lưu ý
- Index trên cột timestamp giúp ORDER BY ... LIMIT 1 rất nhanh (index scan dừng sớm).
- TIMESTAMP tự động chuyển timezone – lưu ý khi so sánh cross-timezone.
- DATETIME không chuyển timezone – phù hợp cho log, appointment cục bộ.