如何使用 MySQL 從新聞表中選擇最後 6 個月的記錄?


要從新聞表中選擇過去 6 個月的記錄,請使用 MySQL 的 date_sub() 函式,因為新聞記錄是按日期排列的。

語法如下所示 −

select *from yourTableName where yourDateTimeColumnName >= date_sub(now(),interval 6 month);

要理解以上概念,我們首先建立一個僅包含新聞 ID 和釋出日期的 NEWS 表 −

mysql> create table Newstable
   -> (
   -> NewsId int,
   -> NewsDatetime datetime
   -> );
Query OK, 0 rows affected (0.66 sec)

使用 insert 命令在表中插入記錄。查詢如下所示 −

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)

使用 select 語句顯示錶中的所有記錄。查詢如下所示 −

mysql> select *from Newstable;

輸出

+--------+---------------------+
| 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)

以下查詢用於從新表中選擇過去 6 個月的資料。查詢如下所示 −

mysql> select *from Newstable where NewsDatetime > date_sub(now(),Interval 6 month);

輸出

+--------+---------------------+
| 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)

更新日期: 30-Jul-2019

5000+ 次瀏覽

啟動您的職業生涯

透過完成課程獲得認證

開始
廣告