如何在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;
阅读更多:MySQL 教程
输出
+--------+---------------------+
| 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)
极客教程