MySQL过滤当前日、月、年的记录?
假设您有一个包含UserLoginTime列的表,我们在其中存储了一些示例值。这是用户的登录时间,我们希望根据当前日期、月份和年份(即当前日期)过滤所有这些记录。我们将
现在让我们创建我们上面讨论的表
mysql> create table userLoginInformation - > ( - > UserId int NOT NULL AUTO_INCREMENT PRIMARY KEY, - > UserName varchar(20), - > UserLoginTime datetime - > );
使用插入命令在表中插入一些记录。
查询如下
mysql> insert into userLoginInformation(UserName,UserLoginTime) values('John','2016-02-12'); mysql> insert into userLoginInformation(UserName,UserLoginTime) values('Carol','2019-01-31'); mysql> insert into userLoginInformation(UserName,UserLoginTime) values('Bob','2019-02-19'); mysql> insert into userLoginInformation(UserName,UserLoginTime) values('Sam','2018-02-19'); mysql> insert into userLoginInformation(UserName,UserLoginTime) values('Larry','2017-04-18');
使用select语句显示表中的所有记录。
查询如下
mysql> select *from userLoginInformation;
以下是输出
+--------+----------+---------------------+ | UserId | UserName | UserLoginTime | +--------+----------+---------------------+ | 1 | John | 2016-02-12 00:00:00 | | 2 | Carol | 2019-01-31 00:00:00 | | 3 | Bob | 2019-02-19 00:00:00 | | 4 | Sam | 2018-02-19 00:00:00 | | 5 | Larry | 2017-04-18 00:00:00 | +--------+----------+---------------------+ 5 rows in set (0.00 sec)
现在,我们将使用YEAR()和根据当前日期过滤记录now()。在这里,我们now()用来获取当前日期
mysql> select *from userLoginInformation where YEAR(UserLoginTime)=YEAR(now());
以下是输出
+--------+----------+---------------------+ | UserId | UserName | UserLoginTime | +--------+----------+---------------------+ | 2 | Carol | 2019-01-31 00:00:00 | | 3 | Bob | 2019-02-19 00:00:00 | +--------+----------+---------------------+ 2 rows in set (0.00 sec)