筛选 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)

更新于:2019-07-30

580 次浏览

启动你的 职业生涯

完成课程获得认证

开始
广告