Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Tìm ngày nhỏ nhất (custom) từ 3 cột Day/Month/Year trong MySQL

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'.