ใช้ CONCAT() รวมคอลัมน์วัน/เดือน/ปี แล้วใช้ MIN() หาค่าน้อยที่สุด
ตัวอย่างการใช้งาน
สร้างตาราง FindMinimumDate (เก็บวัน/เดือน/ปีแยกกัน):
mysql> CREATE TABLE FindMinimumDate (
-> Id INT NOT NULL AUTO_INCREMENT,
-> yourDay VARCHAR(2),
-> yourMonth VARCHAR(2),
-> yourYear VARCHAR(4),
-> PRIMARY KEY(Id)
-> );
เพิ่มข้อมูล:
mysql> 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');
ข้อมูลทั้งหมด
+----+---------+-----------+----------+ | Id | yourDay | yourMonth | yourYear | +----+---------+-----------+----------+ | 1 | 21 | 11 | 2019 | | 2 | 20 | 10 | 2020 | | 3 | 03 | 08 | 2014 | | 4 | 04 | 09 | 2017 | | 5 | 05 | 07 | 2013 | | 6 | 25 | 12 | 2016 | +----+---------+-----------+----------+
คำสั่งหาวันที่น้อยที่สุด
mysql> SELECT MIN(CONCAT(yourYear, '-', yourMonth, '-', yourDay)) AS MinimumDate FROM FindMinimumDate;
ผลลัพธ์
+-------------+ | MinimumDate | +-------------+ | 2013-07-05 | +-------------+
คำอธิบาย: รวมเป็นสตริง 'YYYY-MM-DD' แล้ว MIN() จะได้วันที่เก่าที่สุด (String Comparison ทำงานได้เพราะรูปแบบ ISO 8601)