Computer >> Máy Tính >  >> Lập trình >> MySQL

Làm cách nào để lấy các bản ghi của hai ngày qua kể từ ngày hiện tại trong MySQL?

Để nhận bản ghi của những ngày cuối cùng kể từ ngày hiện tại, bạn cần sử dụng DATE_SUB (). Chúng tôi cũng sẽ sử dụng NOW () để lấy ngày hiện tại. Cú pháp cho tương tự như sau

SELECT *FROM yourTableName
WHERE yourDateTimeColumnName BETWEEN DATE_SUB(DATE(NOW()), INTERVAL 2 DAY)
AND DATE_SUB(DATE(NOW()), INTERVAL 1 DAY);

Hãy để chúng tôi xem một ví dụ

mysql> create table get2daysAgoDemo
   - > (
   - > Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
   - > Name varchar(20),
   - > PostDateTime datetime
   - > );
Query OK, 0 rows affected (1.70 sec)

Chèn một số bản ghi vào bảng bằng lệnh chèn.

Truy vấn như sau

mysql> insert into get2daysAgoDemo(Name,PostDateTime) values('Larry',now());
Query OK, 1 row affected (0.68 sec)
mysql> insert into get2daysAgoDemo(Name,PostDateTime) values('Mike','2019-02-13');
Query OK, 1 row affected (0.12 sec)
mysql> insert into get2daysAgoDemo(Name,PostDateTime) values('Sam','2019-01-31');
Query OK, 1 row affected (0.15 sec)
mysql> insert into get2daysAgoDemo(Name,PostDateTime) values('Bob','2019-02-14');
Query OK, 1 row affected (0.29 sec)
mysql> insert into get2daysAgoDemo(Name,PostDateTime) values('David','2019-02-12');
Query OK, 1 row affected (0.21 sec)
mysql> insert into get2daysAgoDemo(Name,PostDateTime) values('Carol','2019-02-11');
Query OK, 1 row affected (0.22 sec)

Hiển thị tất cả các bản ghi từ bảng bằng cách sử dụng câu lệnh select.

Truy vấn như sau

mysql> select *from get2daysAgoDemo;

Sau đây là kết quả

+----+-------+---------------------+
| Id | Name  | PostDateTime        |
+----+-------+---------------------+
|  1 | Larry | 2019-02-15 21:47:10 |
|  2 | Mike  | 2019-02-13 00:00:00 |
|  3 | Sam   | 2019-01-31 00:00:00 |
|  4 | Bob   | 2019-02-14 00:00:00 |
|  5 | David | 2019-02-12 00:00:00 |
|  6 | Carol | 2019-02-11 00:00:00 |
+----+-------+---------------------+
6 rows in set (0.00 sec)

Đây là truy vấn để lấy bản ghi của hai ngày qua. Giả sử ngày hiện tại là ngày 15 tháng 2 năm 2019

mysql> select *from get2daysAgoDemo
   - > where PostDateTime between DATE_SUB(DATE(NOW()), INTERVAL 2 DAY)
   - > AND DATE_SUB(DATE(NOW()), INTERVAL 1 DAY);

Sau đây là kết quả hiển thị các bản ghi trong 2 ngày qua, tức là ngày 13 và 14 tháng 2, ngày hiện tại của chúng tôi là ngày 15 tháng 2

+----+------+---------------------+
| Id | Name | PostDateTime        |
+----+------+---------------------+
|  2 | Mike | 2019-02-13 00:00:00 |
|  4 | Bob  | 2019-02-14 00:00:00 |
+----+------+---------------------+
2 rows in set (0.01 sec)