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

แบบสอบถาม MySQL เพื่อสั่งซื้อและแสดงความแตกต่างระหว่างวันที่จากวันที่ปัจจุบัน


สำหรับสิ่งนี้ ใช้คำสั่ง ORDER BY วันที่ปัจจุบันเป็นดังนี้ −

mysql> เลือกเลย ();+---------------------+| ตอนนี้() |+---------------------+| 2019-06-09 21:08:16 |+--------------------- +1 แถวในชุด (0.00 วินาที)

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

mysql> สร้างตาราง DemoTable -> ( -> Id int ไม่ใช่ NULL AUTO_INCREMENT PRIMARY KEY, -> DueDate datetime -> ); แบบสอบถามตกลง 0 แถวได้รับผลกระทบ (0.62 วินาที)

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

mysql> แทรกลงในค่า DemoTable(DueDate) ('2019-06-12'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.24 วินาที)mysql> แทรกลงในค่า DemoTable (DueDate) ('2019-06-01');แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.37 วินาที)mysql> แทรกลงในค่า DemoTable (DueDate) ('2019-06-05'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.20 วินาที) mysql> แทรกลงในค่า DemoTable (DueDate) ( '2019-06-10');แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.13 วินาที)mysql> แทรกลงในค่า DemoTable (DueDate) ('2019-06-11'); แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.66 วินาที) 

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

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

ผลลัพธ์

<ก่อนหน้า>+----+---------------------+| รหัส | DueDate |+----+---------------------+| 1 | 2019-06-12 00:00:00 || 2 | 2019-06-01 00:00:00 || 3 | 2019-06-05 00:00:00 || 4 | 2019-06-10 00:00:00 || 5 | 2019-06-11 00:00:00 |+-----------+---------------------+5 แถวในชุด (0.00 วินาที)

นี่คือแบบสอบถามที่จะสั่งซื้อโดยเพื่อรับส่วนต่างและสั่งซื้อวันที่ ความแตกต่างระหว่างวันที่จะแสดงในคอลัมน์แยกต่างหาก -

mysql> เลือก Id,DueDate,DATEDIFF(DueDate, CURDATE()) AS t จาก DemoTable -> สั่งซื้อตามกรณีเมื่อ t <0 แล้ว 1 ELSE 0 END, t;

ผลลัพธ์

<ก่อนหน้า>+----+---------------------+------+| รหัส | DueDate | t |+----+---------------------+------+| 4 | 2019-06-10 00:00:00 | 1 || 5 | 2019-06-11 00:00:00 | 2 || 1 | 2019-06-12 00:00:00 | 3 || 2 | 2019-06-01 00:00:00 | -8 || 3 | 2019-06-05 00:00:00 | -4 |+----+---------------------+------+5 แถวในชุด (0.00 วินาที)