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

เลือกข้อมูล 15 วันย้อนหลังจากวันนี้ใน MySQL

การเตรียมข้อมูล

mysql> CREATE TABLE DemoTable1845 (
    ArrivalDate DATE
);

mysql> INSERT INTO DemoTable1845 VALUES('2019-12-02');
mysql> INSERT INTO DemoTable1845 VALUES('2019-11-18');
mysql> INSERT INTO DemoTable1845 VALUES('2019-12-18');
mysql> INSERT INTO DemoTable1845 VALUES('2019-12-25');
mysql> INSERT INTO DemoTable1845 VALUES('2019-11-15');

วันที่ปัจจุบัน

mysql> SELECT NOW();
+---------------------+
| now()               |
+---------------------+
| 2019-12-02 20:47:05 |
+---------------------+

Query ข้อมูล 15 วันย้อนหลัง

mysql> SELECT * FROM DemoTable1845
    WHERE ArrivalDate < DATE_SUB(NOW(), INTERVAL 15 DAY);

ผลลัพธ์ (เฉพาะ 2019-11-15 ที่เก่ากว่า 15 วันจาก 2019-12-02):

+-------------+
| ArrivalDate |
+-------------+
| 2019-11-15  |
+-------------+

ฟังก์ชันวันที่ที่เกี่ยวข้อง

ฟังก์ชันคำอธิบาย
DATE_SUB(date, INTERVAL expr unit)ลบช่วงเวลาจากวันที่
DATE_ADD(date, INTERVAL expr unit)บวกช่วงเวลาให้วันที่
NOW()วันที่และเวลาปัจจุบัน
CURDATE()วันที่ปัจจุบัน (ไม่รวมเวลา)

หน่วยเวลา (Unit) ที่ใช้ได้

  • SECOND, MINUTE, HOUR
  • DAY, WEEK, MONTH, QUARTER, YEAR
  • MICROSECOND

ตัวอย่างเพิ่มเติม

-- 30 วันที่แล้ว
WHERE ArrivalDate < DATE_SUB(CURDATE(), INTERVAL 30 DAY)

-- 3 เดือนที่แล้ว
WHERE ArrivalDate < DATE_SUB(NOW(), INTERVAL 3 MONTH)

-- 1 ปีข้างหน้า
WHERE ArrivalDate > DATE_ADD(NOW(), INTERVAL 1 YEAR)