筛选 MySQL 中当天、当月和当年的记录?
假设你有一个包含 UserLoginTime 列的表,其中存储了一些示例值。这是用户的登录时间,我们需要根据当天、当月和当年,即当前日期,筛选所有这些记录。我们将
现在,让我们创建上面讨论的表
mysql> create table userLoginInformation - > ( - > UserId int NOT NULL AUTO_INCREMENT PRIMARY KEY, - > UserName varchar(20), - > UserLoginTime datetime - > ); Query OK, 0 rows affected (0.79 sec)
使用 insert 命令在表中插入一些记录。
查询如下
mysql> insert into userLoginInformation(UserName,UserLoginTime) values('John','2016-02-12'); Query OK, 1 row affected (0.18 sec) mysql> insert into userLoginInformation(UserName,UserLoginTime) values('Carol','2019-01-31'); Query OK, 1 row affected (0.16 sec) mysql> insert into userLoginInformation(UserName,UserLoginTime) values('Bob','2019-02-19'); Query OK, 1 row affected (0.12 sec) mysql> insert into userLoginInformation(UserName,UserLoginTime) values('Sam','2018-02-19'); Query OK, 1 row affected (0.16 sec) mysql> insert into userLoginInformation(UserName,UserLoginTime) values('Larry','2017-04-18'); Query OK, 1 row affected (0.18 sec)
使用 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)
广告