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

จะเลือกบันทึกจาก 6 เดือนที่ผ่านมาในตารางข่าวโดยใช้ MySQL ได้อย่างไร


ในการเลือกบันทึก 6 เดือนที่ผ่านมาจากตารางข่าว ให้ใช้ฟังก์ชัน date_sub() จาก MySQL เนื่องจากบันทึกข่าวจะถูกจัดเรียงตามวันที่

ไวยากรณ์มีดังนี้ −

เลือก *จาก yourTableName โดยที่ yourDateTimeColumnName>=date_sub(now(),ช่วง 6 เดือน);

เพื่อให้เข้าใจแนวคิดข้างต้น ขั้นแรกให้เราสร้างตาราง NEWS โดยมีเพียง NEWS ID และวันที่เผยแพร่ -

mysql> สร้างตาราง Newstable -> ( -> NewsId int, -> NewsDatetime datetime -> ); ตกลง ตกลง 0 แถวได้รับผลกระทบ (0.66 วินาที)

แทรกระเบียนในตารางโดยใช้คำสั่งแทรก แบบสอบถามมีดังนี้ −

mysql> แทรกลงในค่าของ Newstable (101,'2018-2-10'); ตกลง, 1 แถวได้รับผลกระทบ (0.18 วินาที)mysql> แทรกลงในค่าของ Newstable (102,'2018-12-10'); แบบสอบถาม ตกลง ได้รับผลกระทบ 1 แถว (0.19 วินาที)mysql> แทรกลงในค่า Newstable (103,'2018-3-14'); แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.14 วินาที) mysql> แทรกลงในค่า Newstable (104,'2018-12 -12');Query OK, 1 แถวได้รับผลกระทบ (0.29 วินาที)mysql> แทรกลงในค่า Newstable (105,'2018-4-21'); Query OK, 1 แถวได้รับผลกระทบ (0.09 วินาที)mysql> แทรกลงในค่า Newstable ( 106,'2018-6-30');แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.22 วินาที)

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

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

ผลลัพธ์

<ก่อนหน้า>+---------+---------------------+| รหัสข่าว | NewsDatetime |+---------+--------------------+| 101 | 2018-02-10 00:00:00 || 102 | 2018-12-10 00:00:00 || 103 | 2018-03-14 00:00:00 || 104 | 2018-12-12 00:00:00 || 105 | 2018-04-21 00:00:00 || 106 | 2018-06-30 00:00:00 |+-------------+---------------------+6 แถวในชุด (0.00 วินาที )

ต่อไปนี้เป็นแบบสอบถามเพื่อเลือก 6 เดือนล่าสุดจากตารางใหม่ แบบสอบถามมีดังนี้ −

mysql> เลือก *จาก Newstable โดยที่ NewsDatetime> date_sub(now(),Interval 6 month);

ผลลัพธ์

<ก่อนหน้า>+---------+---------------------+| รหัสข่าว | NewsDatetime |+---------+--------------------+| 102 | 2018-12-10 00:00:00 || 104 | 2018-12-12 00:00:00 || 106 | 2018-06-30 00:00:00 |+---------+---------------------+3 แถวในชุด (0.00 วินาที )