Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

วิธีหาวันที่น้อยที่สุด (Minimum Date) จากคอลัมน์แยกวัน/เดือน/ปีใน MySQL

ใช้ 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)