การค้นหาบันทึกที่มีวันที่ตรงกับ 7 วันที่ผ่านมาอย่างแม่นยำ
ใช้ DATE() แปลง DATETIME ให้เหลือวันที่ แล้วเปรียบเทียบกับ CURDATE() - INTERVAL 7 DAY เพื่อหาบันทึกของวันที่แน่นอน 7 วันที่แล้ว
สร้างตารางและเพิ่มข้อมูล (สมมติวันนี้ 2019-08-23)
mysql> CREATE TABLE DemoTable (
Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
AdmissionDate DATETIME
);
Query OK, 0 rows affected (0.83 sec)
mysql> INSERT INTO DemoTable(AdmissionDate) VALUES('2019-01-23');
mysql> INSERT INTO DemoTable(AdmissionDate) VALUES('2019-08-15');
mysql> INSERT INTO DemoTable(AdmissionDate) VALUES('2019-08-16');
mysql> INSERT INTO DemoTable(AdmissionDate) VALUES('2019-08-24');
แสดงข้อมูลทั้งหมด
mysql> SELECT * FROM DemoTable;
ผลลัพธ์:
+----+---------------------+
| Id | AdmissionDate |
+----+---------------------+
| 1 | 2019-01-23 00:00:00 |
| 2 | 2019-08-15 00:00:00 |
| 3 | 2019-08-16 00:00:00 |
| 4 | 2019-08-24 00:00:00 |
+----+---------------------+
4 rows in set (0.00 sec)
คำสั่งดึงข้อมูลวันที่ 7 วันที่แล้ว (2019-08-16)
mysql> SELECT * FROM DemoTable WHERE DATE(AdmissionDate) = CURDATE() - INTERVAL 7 DAY;
ผลลัพธ์:
+----+---------------------+
| Id | AdmissionDate |
+----+---------------------+
| 3 | 2019-08-16 00:00:00 |
+----+---------------------+
1 row in set (0.04 sec)
คำอธิบาย
DATE(AdmissionDate): ดึงเฉพาะส่วนวันที่ (ตัดเวลาออก)CURDATE(): วันที่ปัจจุบัน (2019-08-23)CURDATE() - INTERVAL 7 DAY: 7 วันที่แล้ว (2019-08-16)- เปรียบเทียบวันที่อย่างแม่นยำ (ไม่ใช่ช่วง)
- ต่างจาก
BETWEENที่เป็นช่วงเวลา