Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Lấy bản ghi datetime chính xác 7 ngày trước trong MySQL

Để tìm bản ghi có ngày giờ chính xác bằng ngày hôm nay trừ 7 ngày, dùng DATE() kết hợp CURDATE() - INTERVAL 7 DAY.

Ví dụ minh họa

Tạo bảng:

mysql> create table DemoTable ( 
    Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, 
    AdmissionDate datetime 
);

Lưu ý: Giả sử ngày hiện tại (CURDATE()) = 2019-08-23.

Chèn dữ liệu:

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');

Hiển thị dữ liệu:

mysql> select * from DemoTable;

Kết quả:

+----+---------------------+
| 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 |
+----+---------------------+

Truy vấn lấy bản ghi đúng 7 ngày trước (2019-08-16)

mysql> select * from DemoTable where date(AdmissionDate) = CURDATE() - interval 7 day;

Kết quả:

+----+---------------------+
| Id | AdmissionDate       |
+----+---------------------+
| 3  | 2019-08-16 00:00:00 |
+----+---------------------+

Giải thích:

  • DATE(AdmissionDate): Trích xuất phần ngày (bỏ giờ/phút/giây)
  • CURDATE(): Ngày hôm nay (2019-08-23)
  • CURDATE() - INTERVAL 7 DAY: 7 ngày trước = 2019-08-16
  • So sánh bằng (=) → chỉ lấy bản ghi đúng ngày 2019-08-16

Mở rộng: Để lấy khoảng 7 ngày qua (từ 7 ngày trước đến hôm nay): WHERE DATE(AdmissionDate) BETWEEN CURDATE() - INTERVAL 7 DAY AND CURDATE().