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

เรียงลำดับตามวันที่กำหนดด้วยประเภท varchar ใน MySQL


สำหรับสิ่งนี้ ให้ใช้ ORDER BY STR_TO_DATE ใน MySQL เช่นเดียวกับไวยากรณ์ด้านล่าง -

เลือก *จากชื่อตารางของคุณ ORDER BY STR_TO_DATE(yourColumnName, '%M %Y') DESC;

ให้เราสร้างตารางก่อน -

mysql> สร้างตาราง DemoTable678(DueDate varchar(200)); สอบถามตกลง 0 แถวได้รับผลกระทบ (0.62 วินาที)

แทรกบางระเบียนในตารางโดยใช้คำสั่งแทรก เราได้ใส่วันที่ที่นี่ -

mysql> แทรกลงในค่า DemoTable678 ('มีนาคม 2019'); Query OK, 1 แถวที่ได้รับผลกระทบ (0.12 วินาที)mysql> แทรกลงในค่า DemoTable678 ('November 2018'); Query OK, 1 แถวได้รับผลกระทบ (0.18 วินาที)mysql> แทรกลงในค่า DemoTable678 ('มกราคม 2019'); แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.18 วินาที)

แสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select -

mysql> เลือก *จาก DemoTable678;

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

<ก่อนหน้า>+--------------+| DueDate |+--------------+| มีนาคม 2019 || พฤศจิกายน 2018 || มกราคม 2019 |+--------------+3 แถวในชุด (0.00 วินาที)

ต่อไปนี้เป็นแบบสอบถามที่จะสั่งซื้อตามวันที่กำหนดด้วยประเภท varchar -

mysql> เลือก *จาก DemoTable678 ORDER BY STR_TO_DATE(DueDate, '%M %Y') DESC;

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

<ก่อนหน้า>+--------------+| DueDate |+--------------+| มีนาคม 2019 || มกราคม 2019 || พฤศจิกายน 2018 |+---------------------+3 แถวในชุด (0.00 วินาที)