MySQL 选择等于今天的日期并返回同一日期的结果?
mysqlmysqli database
要获取今天的日期,请使用内置函数 CURDATE()。CURDATE() 仅提供当前日期而不是时间。这样,要获取同一天的记录,您可以尝试以下语法 −
select yourColumnName1,yourColumnName2,......,yourColumnNameN,DATE_FORMAT(yourDateColumnName, '%Y-%m-%d') from yourTableName WHERE DATE(yourDateColumnName) = CURDATE();
为了理解上述概念,让我们创建一个表。创建表的查询如下。其中一列将具有 datetime 数据类型来显示日期 −
mysql> create table GmailSignIn −> ( −> UserId int, −> UserName varchar(200), −> DateOfSignIn datetime −> ); Query OK, 0 rows affected (1.56 sec)
现在您可以借助 insert 命令将一些记录插入表中。我们还设置了当前日期,即 2018-12-06。
查询如下 −
mysql> insert into GmailSignIn values(222111,'John',now()); Query OK, 1 row affected (0.15 sec) mysql> insert into GmailSignIn values(333222,'Johnson',curdate()); Query OK, 1 row affected (0.18 sec) mysql> insert into GmailSignIn values(444333,'Carol',date_add(curdate(),interval 1 day)); Query OK, 1 row affected (0.13 sec) mysql> insert into GmailSignIn values(555444,'David',date_add(curdate(),interval -1 day)); Query OK, 1 row affected (0.83 sec)
使用 select 语句显示表中的所有记录。查询如下 −
mysql> select *from GmailSignIn;
以下是输出 −
+--------+----------+---------------------+ | UserId | UserName | DateOfSignIn | +--------+----------+---------------------+ | 222111 | John | 2018-12-06 19:13:30 | | 333222 | Johnson | 2018-12-06 00:00:00 | | 444333 | Carol | 2018-12-07 00:00:00 | | 555444 | David | 2018-12-05 00:00:00 | +--------+----------+---------------------+ 4 rows in set (0.00 sec)
以下查询用于选择等于今天的日期并显示同一日期的记录 −
mysql> select UserId,UserName,DateOfSignIn,DATE_FORMAT(DateOfSignIn, '%Y-%m-%d') from GmailSignIn −> where date(DateOfSignIn) = curdate();
以下是输出 −
+--------+----------+---------------------+---------------------------------------+ | UserId | UserName | DateOfSignIn | DATE_FORMAT(DateOfSignIn, '%Y-%m-%d') | +--------+----------+---------------------+---------------------------------------+ | 222111 | John | 2018-12-06 19:13:30 | 2018-12-06 | | 333222 | Johnson | 2018-12-06 00:00:00 | 2018-12-06 | +--------+----------+---------------------+---------------------------------------+ 2 rows in set (0.00 sec)