Để chọn các bản ghi 6 tháng qua từ bảng tin tức, hãy sử dụng hàm date_sub () từ MySQL vì các bản ghi tin tức được sắp xếp theo ngày.
Cú pháp như sau -
select *from yourTableName where yourDateTimeColumnName >= date_sub(now(),interval 6 month);
Để hiểu khái niệm trên, trước tiên chúng ta hãy tạo một bảng TIN TỨC chỉ có ID TIN TỨC và ngày xuất bản bảng này -
mysql> create table Newstable -> ( -> NewsId int, -> NewsDatetime datetime -> ); Query OK, 0 rows affected (0.66 sec)
Chèn bản ghi trong bảng bằng lệnh chèn. Truy vấn như sau -
mysql> insert into Newstable values(101,'2018-2-10'); Query OK, 1 row affected (0.18 sec) mysql> insert into Newstable values(102,'2018-12-10'); Query OK, 1 row affected (0.19 sec) mysql> insert into Newstable values(103,'2018-3-14'); Query OK, 1 row affected (0.14 sec) mysql> insert into Newstable values(104,'2018-12-12'); Query OK, 1 row affected (0.29 sec) mysql> insert into Newstable values(105,'2018-4-21'); Query OK, 1 row affected (0.09 sec) mysql> insert into Newstable values(106,'2018-6-30'); 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 Newstable;
Đầu ra
+--------+---------------------+ | NewsId | NewsDatetime | +--------+---------------------+ | 101 | 2018-02-10 00:00:00 | | 102 | 2018-12-10 00:00:00 | | 103 | 2018-03-14 00:00:00 | | 104 | 2018-12-12 00:00:00 | | 105 | 2018-04-21 00:00:00 | | 106 | 2018-06-30 00:00:00 | +--------+---------------------+ 6 rows in set (0.00 sec)
Sau đây là truy vấn để chọn 6 tháng qua từ bảng mới. Truy vấn như sau -
mysql> select *from Newstable where NewsDatetime > date_sub(now(),Interval 6 month);
Đầu ra
+--------+---------------------+ | NewsId | NewsDatetime | +--------+---------------------+ | 102 | 2018-12-10 00:00:00 | | 104 | 2018-12-12 00:00:00 | | 106 | 2018-06-30 00:00:00 | +--------+---------------------+ 3 rows in set (0.00 sec)