Khi ngày tháng năm tách thành 3 cột VARCHAR, dùng CONCAT() ghép chuỗi chuẩn ISO YYYY-MM-DD rồi áp MIN().
Cú pháp
SELECT MIN(CONCAT(cot_nam, '-', cot_thang, '-', cot_ngay)) AS MinimumDate
FROM ten_bang;
Ví dụ minh họa
Tạo bảng FindMinimumDate:
CREATE TABLE FindMinimumDate (
Id INT NOT NULL AUTO_INCREMENT,
yourDay VARCHAR(2), yourMonth VARCHAR(2), yourYear VARCHAR(4),
PRIMARY KEY (Id)
);
INSERT INTO FindMinimumDate (yourDay, yourMonth, yourYear) VALUES
('21','11','2019'), ('20','10','2020'), ('03','08','2014'),
('04','09','2017'), ('05','07','2013'), ('25','12','2016');
Truy vấn tìm ngày nhỏ nhất
SELECT MIN(CONCAT(yourYear, '-', yourMonth, '-', yourDay)) AS MinimumDate
FROM FindMinimumDate;
Kết quả:
+-------------+
| MinimumDate |
+-------------+
| 2013-07-05 |
+-------------+
Giải thích: Ghép theo thứ tự Year-Month-Day đảm bảo so sánh chuỗi (lexicographic) khớp với thứ tự thời gian. Cần đảm bảo Month/Day có 2 chữ số (0-padded) – ví dụ '07' không phải '7'.