Để 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)