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

ฟิลด์ MySQL ORDER BY Date ไม่อยู่ในรูปแบบวันที่?


ต่อไปนี้เป็นรูปแบบการเรียงลำดับตามวันที่ซึ่งไม่ได้อยู่ในรูปแบบวันที่

เลือก *จาก 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 วินาที)