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

ค้นหาวันหมดอายุในอีก 2 วันข้างหน้าใน MySQL ด้วย BETWEEN

การค้นหาช่วงวันที่ด้วย BETWEEN และ CURDATE()

เพื่อหาบันทึกที่มีวันที่อยู่ในช่วงวันนี้ถึงอีก 2 วันข้างหน้า เราใช้ BETWEEN ร่วมกับ CURDATE() และ INTERVAL

สร้างตารางและเพิ่มข้อมูล (สมมติวันนี้คือ 2019-08-18)

mysql> CREATE TABLE DemoTable (ExpiryDate DATE);
Query OK, 0 rows affected (0.55 sec)

mysql> INSERT INTO DemoTable VALUES('2018-01-21');
mysql> INSERT INTO DemoTable VALUES('2019-08-20');
mysql> INSERT INTO DemoTable VALUES('2018-08-20');
mysql> INSERT INTO DemoTable VALUES('2019-08-21');

แสดงข้อมูลทั้งหมด

mysql> SELECT * FROM DemoTable;

ผลลัพธ์:

+------------+
| ExpiryDate |
+------------+
| 2018-01-21 |
| 2019-08-20 |
| 2018-08-20 |
| 2019-08-21 |
+------------+
4 rows in set (0.00 sec)

คำสั่งค้นหาวันหมดอายุภายใน 2 วัน (รวมวันนี้)

mysql> SELECT * FROM DemoTable
    WHERE ExpiryDate BETWEEN CURDATE() AND CURDATE() + INTERVAL 2 DAY;

ผลลัพธ์ (เมื่อวันนี้คือ 2019-08-18):

+------------+
| ExpiryDate |
+------------+
| 2019-08-20 |
+------------+
1 row in set (0.00 sec)

คำอธิบาย

  • CURDATE() : คืนคาวันที่ปัจจุบัน (ไม่รวมเวลา)
  • CURDATE() + INTERVAL 2 DAY : วันที่ 2 วันข้างหน้า
  • BETWEEN ... AND ... : รวมทั้งค่าขอบเขต (inclusive)
  • ในตัวอย่าง วันหมดอายุ 2019-08-20 อยู่ในช่วง 18-20 สิงหาคม จึงถูกเลือก