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

Truy vấn MySQL để trả về tất cả các bản ghi có datetime cũ hơn 1 tuần

Để biết các ngày cũ hơn 1 tuần, bạn có thể sử dụng cú pháp sau -

select *from yourTableName where yourColumnName < now() - interval 1 week;

Để hiểu khái niệm trên, chúng ta hãy tạo một bảng. Truy vấn để tạo bảng như sau -

mysql> create table DatesOfOneWeek
   −> (
   −> ArrivalTime datetime
   −> );
Query OK, 0 rows affected (0.87 sec)

Chèn một số bản ghi trong bảng -

mysql> insert into DatesOfOneWeek values(date_add(now(),interval 2 week));
Query OK, 1 row affected (0.11 sec)

mysql> insert into DatesOfOneWeek values('2018-11-04');
Query OK, 1 row affected (0.14 sec)

mysql> insert into DatesOfOneWeek values('2018-11-25');
Query OK, 1 row affected (0.11 sec)

mysql> insert into DatesOfOneWeek values(date_add(now(),interval -1 week));
Query OK, 1 row affected (0.14 sec)

mysql> insert into DatesOfOneWeek values(date_add(now(),interval 1 week));
Query OK, 1 row affected (0.11 sec)

Hãy để chúng tôi kiểm tra các bản ghi mà chúng tôi đã chèn ở trên có hiện diện hay không. Truy vấn để hiển thị tất cả các bản ghi từ bảng như sau -

mysql> select *from DatesOfOneWeek;

Sau đây là kết quả -

+---------------------+
| ArrivalTime         |
+---------------------+
| 2018-12-20 18:11:02 |
| 2018-11-04 00:00:00 |
| 2018-11-25 00:00:00 |
| 2018-11-29 18:11:40 |
| 2018-12-13 18:11:46 |
+---------------------+
5 rows in set (0.00 sec)

Đây là truy vấn MySQL để lấy một ngày trong quá khứ, tức là tất cả các ngày trước 1 tuần -

mysql> select *from DatesOfOneWeek where ArrivalTime < now() - interval 1 week;

Sau đây là kết quả -

+---------------------+
| ArrivalTime         |
+---------------------+
| 2018-11-04 00:00:00 |
| 2018-11-25 00:00:00 |
| 2018-11-29 18:11:40 |
+---------------------+
3 rows in set (0.00 sec)