ORDER BY เรียงลำดับวัน เดือน ปี จากน้อย ASC|DESC ไปหามาก ใช้ varchar เก็บข้อมูลแต่เรียงได้แค่วันที่ เดือน/ปีไม่ยอมเรียงควรใช้วิธีใด?
**ถ้าเป็นระบบใหม่ ไม่มีข้อมูลเดิม แนะนำให้แก้ที่ตัวฟังก์ชั่นของ DatePicker ดีกว่าครับ แต่ถ้ามันยุ่งยากตาลายมากเลย
แนะนำว่าเอาไปดักตัวแปรที่จะเข้าไปในฟิล created เอาครับ โค้ด INSERT INTO อยู่ไหน ไปดักตรงนั้น ทำให้มันถูกระเบียบเรียบร้อย
Code (PHP)
<? $ที่จะเข้าฟิลล์created = date( 'Y-m-d', strtotime( $ที่จะเข้าฟิลล์created ));?>
Date :
2015-01-16 18:25:40
By :
meannerss
ทำตามคำแนะนำของคุณ meannerss เลยครับ
สำหรับการแก้ปัญหาเฉพาะหน้า
Code (SQL)
ORDER BY
concat(right( created, 4), substring( created, 3,2), left( created, 2)) ,
concat(right( expire, 4), substring( expire, 3,2), left( expire, 2))
LIMIT 30";
Date :
2015-01-16 18:34:20
By :
Chaidhanan
สรูปคือต้องเก็บด้วยรูปแบบ date( 'Y-m-d') นี้ใช่ใหมครับ
ผลที่ออกมาคือ 2015-01-16 เก็บลงใน varchar(50) เช่นเดิมใช่ใหมครับ
ดังนั้นผลต่างที่ออกมาคือมี / สแลช 02/06/2009
กับ ขีด - เท่านั้น 2015-01-16 ถูกต้องหรือไม่ครับ
หรือว่าต้องเก็บด้วย timestamp เท่านั้นจึงจะได้ผล
ประวัติการแก้ไข 2015-01-16 19:06:17
Date :
2015-01-16 19:02:25
By :
Meen2007
mysql format type datetime เป็น YYYY-mm-dd HH:mm:ss ครับ เวลาคิวรี่ ก็ออกมารูปแบบนี้
สำหรับการ จัดเรียง ที่คุณทำมันเป็นการจัดเรียง อักษร ครับ มัน เช็คจากอักษรตัวแรก
มันไม่ได้มองว่าเป้นวันที่
ดังนั้นเราต้อง ย้าย ปี ซึ่งมี priority สูงกว่า (ความสำคัญมากกว่า) มาเรียงก่อน
ตาม ด้วยเดือนและถึงวัน ซึ่งมีลำดับความสำคัญน้อยสุด
Date :
2015-01-17 09:29:56
By :
Chaidhanan
Load balance : Server 01