ต่อไปนี้เป็นรูปแบบการเรียงลำดับตามวันที่ซึ่งไม่ได้อยู่ในรูปแบบวันที่
เลือก *จาก yourTableNameorder โดยSTR_TO_DATE(yourColumnName,'%d/%m/%Y') DESC;
เพื่อให้เข้าใจไวยากรณ์ข้างต้น ให้เราสร้างตาราง แบบสอบถามเพื่อสร้างตารางมีดังนี้
mysql> สร้าง table orderByDateFormatDemo -> ( -> Id int ไม่ใช่ NULL AUTO_INCREMENT PRIMARY KEY, -> ArrivalDatetime varchar(100) -> ); ตกลง ตกลง 0 แถวได้รับผลกระทบ (0.73 วินาที)
แทรกบางระเบียนในตารางโดยใช้คำสั่งแทรก แบบสอบถามมีดังนี้ −
mysql> แทรกลงในค่า orderByDateFormatDemo(ArrivalDatetime) ('01/10/2012'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.20 วินาที)mysql> แทรกลงในค่า orderByDateFormatDemo (ArrivalDatetime) ('03/11/2010');แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.15 วินาที)mysql> แทรกลงในค่า orderByDateFormatDemo(ArrivalDatetime) ('04/09/2018'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.14 วินาที) mysql> แทรกลงในค่า orderByDateFormatDemo (ArrivalDatetime) ( '31/01/2019'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.17 วินาที) mysql> แทรกลงในค่า orderByDateFormatDemo (ArrivalDatetime) ('21/04/2017'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.21 วินาที) mysql> แทรกลงในค่า orderByDateFormatDemo(ArrivalDatetime) ('23/05/2016'); ตกลง ตกลง 1 แถวได้รับผลกระทบ (0.12 วินาที)
แสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select แบบสอบถามมีดังนี้ −
mysql> เลือก *จาก orderByDateFormatDemo;
ต่อไปนี้เป็นผลลัพธ์
<ก่อนหน้า>+---+-----------------+| รหัส | มาถึงวันที่เวลา |+----+-----------------+| 1 | 01/10/2012 || 2 | 03/11/2010 || 3 | 04/09/2018 || 4 | 31/01/2019 || 5 | 21/04/2017 || 6 | 23/05/2016 |+----+-----------------+6 แถวในชุด (0.00 วินาที)นี่คือแบบสอบถามไปยังฟิลด์ ORDER BY วันที่ซึ่งไม่ได้อยู่ในรูปแบบวันที่
mysql> เลือก *จาก orderByDateFormatDemo -> สั่งซื้อโดย -> STR_TO_DATE(ArrivalDatetime,'%d/%m/%Y') DESC;
ต่อไปนี้เป็นผลลัพธ์
<ก่อนหน้า>+---+-----------------+| รหัส | มาถึงวันที่เวลา |+----+-----------------+| 4 | 31/01/2019 || 3 | 04/09/2018 || 5 | 21/04/2017 || 6 | 23/05/2559 || 1 | 01/10/2012 || 2 | 03/11/2010 |+----+-----------------+6 แถวในชุด (0.04 วินาที)