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

จะรับบันทึกของสองวันสุดท้ายจากวันที่ปัจจุบันใน MySQL ได้อย่างไร


ในการรับบันทึกของวันสุดท้ายจากวันที่ปัจจุบัน คุณต้องใช้ 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 วินาที)