ในการรับบันทึกของวันสุดท้ายจากวันที่ปัจจุบัน คุณต้องใช้ DATE_SUB() นอกจากนี้เรายังจะใช้ NOW() เพื่อรับวันที่ปัจจุบัน ไวยากรณ์สำหรับสิ่งเดียวกันมีดังนี้
SELECT *FROM yourTableNameWHERE yourDateTimeColumnName BETWEEN DATE_SUB(DATE(NOW()), INTERVAL 2 DAY)AND DATE_SUB(DATE(NOW()), INTERVAL 1 DAY);
มาดูตัวอย่างกัน
mysql> สร้างตาราง get2daysAgoDemo -> ( -> Id int ไม่ใช่ NULL AUTO_INCREMENT PRIMARY KEY, -> ชื่อ varchar(20), -> PostDateTime datetime -> ); เคียวรีตกลง 0 แถวได้รับผลกระทบ (1.70 วินาที)
แทรกบางระเบียนในตารางโดยใช้คำสั่ง insert
แบบสอบถามมีดังนี้
mysql> แทรกลงในค่า get2daysAgoDemo(Name,PostDateTime) ('Larry',now());Query OK, 1 แถวได้รับผลกระทบ (0.68 วินาที)mysql> แทรกลงใน get2daysAgoDemo(Name,PostDateTime) ค่า ('Mike', '2019-02-13'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.12 วินาที) mysql> แทรกลงในค่า get2daysAgoDemo (ชื่อ PostDateTime) ('Sam', '2019-01-31'); แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.15 วินาที) mysql> แทรกลงในค่า get2daysAgoDemo (ชื่อ, PostDateTime) ('Bob', '2019-02-14'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.29 วินาที) mysql> แทรกลงในค่า get2daysAgoDate (ชื่อ, PostDateTime) ('David','2019-02-12');แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.21 วินาที) mysql> แทรกลงในค่า get2daysAgoDemo (ชื่อ PostDateTime) ('Carol','2019-02-11'); แบบสอบถาม ตกลง ได้รับผลกระทบ 1 แถว (0.22 วินาที)
แสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select
แบบสอบถามมีดังนี้
mysql> เลือก *จาก get2daysAgoDemo;
ต่อไปนี้เป็นผลลัพธ์
<ก่อนหน้า>+----+-------+---------------------+| รหัส | ชื่อ | PostDateTime |+----+-------+---------------------+| 1 | แลร์รี่ | 2019-02-15 21:47:10 || 2 | ไมค์ | 2019-02-13 00:00:00 || 3 | แซม | 2019-01-31 00:00:00 || 4 | บ๊อบ | 2019-02-14 00:00:00 || 5 | เดวิด | 2019-02-12 00:00:00 || 6 | แครอล | 2019-02-11 00:00:00 |+----+-------+---------------------+6 แถวใน ตั้งค่า (0.00 วินาที)นี่คือแบบสอบถามเพื่อรับบันทึกของสองวันที่ผ่านมา สมมุติว่าวันที่ปัจจุบันคือ 2019-02-15
mysql> เลือก *from get2daysAgoDemo -> โดยที่ PostDateTime ระหว่าง DATE_SUB(DATE(NOW()), INTERVAL 2 DAY) -> AND DATE_SUB(DATE(NOW()), INTERVAL 1 DAY);
ต่อไปนี้เป็นผลลัพธ์ที่แสดงบันทึกจาก 2 วันที่ผ่านมา เช่น 13 และ 14 กุมภาพันธ์ sine วันที่ปัจจุบันของเราคือ 15th กุมภาพันธ์
<ก่อนหน้า>+----+------+---------------------+| รหัส | ชื่อ | PostDateTime |+----+------+---------------------+| 2 | ไมค์ | 2019-02-13 00:00:00 || 4 | บ๊อบ | 2019-02-14 00:00:00 |+----+------+---------------------+2 แถวในชุด (0.01 วินาที)