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