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

กรองวันที่จากตารางที่มีระเบียน DATE และ NULL ใน MySQL


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

mysql> สร้างตาราง DemoTable (วันที่และเวลาวันแรกของวันที่ SecondDate) ตกลง สืบค้น 0 แถวได้รับผลกระทบ (0.57 วินาที)

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

mysql> แทรกลงในค่า DemoTable ('2019-01-21','2018-01-21'); เคียวรีตกลง, 1 แถวได้รับผลกระทบ (0.13 วินาที)mysql> แทรกลงในค่า DemoTable ('2019-10-04 ','2019-08-14');เคียวรีตกลง, 1 แถวได้รับผลกระทบ (0.16 วินาที)mysql> แทรกลงในค่า DemoTable ('2019-05-01','2019-09-11'); แบบสอบถามตกลง 1 แถว ได้รับผลกระทบ (0.65 วินาที) mysql> แทรกลงในค่า DemoTable (NULL, NULL) แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.18 วินาที) mysql> แทรกลงในค่า DemoTable ('2019-03-01', NULL) แบบสอบถามตกลง 1 แถว ได้รับผลกระทบ (0.13 วินาที)

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

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

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

<ก่อนหน้า>+---------------------+---------------------+| เดทแรก | SecondDate |+---------------------+---------------------+| 2019-01-21 00:00:00 | 2018-01-21 00:00:00 || 2019-10-04 00:00:00 | 2019-08-14 00:00:00 || 2019-05-01 00:00:00 | 2019-09-11 00:00:00 || NULL | NULL || 2019-03-01 00:00:00 | NULL |+---------------------+---------------------+5 แถวใน ตั้งค่า (0.00 วินาที)

ต่อไปนี้เป็นแบบสอบถามเพื่อกรองวันที่จากตารางที่มีระเบียน DATE และ NULL -

mysql> เลือก *จาก DemoTablewhere FirstDate <=curdate() และ (SecondDate>=curdate() หรือ SecondDate IS NULL);

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

<ก่อนหน้า>+---------------------+---------------------+| เดทแรก | SecondDate |+---------------------+---------------------+| 2019-05-01 00:00:00 | 2019-09-11 00:00:00 || 2019-03-01 00:00:00 | NULL |+---------------------+---------------------+2 แถวใน ตั้งค่า (0.00 วินาที)