How to Get MySQL Today’s Date

MySQL Today

摘要:在本教程中,您将学习如何使用内置日期函数查询与MySQL今天日期匹配的数据。

使用内置日期函数获取 MySQL 今天的日期

有时,您可能希望从表中查询数据以获取日期列为今天的行,例如:

SELECT 
    column_list
FROM
    table_name
WHERE
    expired_date = today;Code language: SQL (Structured Query Language) (sql)

要获取今天的日期,请使用CURDATE()函数,如下所示:

mysql> SELECT CURDATE() today;
+------------+
| today      |
+------------+
| 2017-07-08 |
+------------+
1 row in set (0.00 sec)Code language: SQL (Structured Query Language) (sql)

或者您可以从NOW()函数返回的当前时间获取日期部分:

mysql> SELECT DATE(NOW()) today;
+------------+
| today      |
+------------+
| 2017-07-08 |
+------------+
1 row in set (0.00 sec)Code language: SQL (Structured Query Language) (sql)

因此查询应更改为:

SELECT 
    column_list
FROM
    table_name
WHERE
    expired_date = CURDATE();Code language: SQL (Structured Query Language) (sql)

如果expired_date列同时包含日期和时间部分,则应使用DATE()函数仅提取日期部分并将其与当前日期进行比较:

SELECT 
    column_list
FROM
    table_name
WHERE
    DATE(expired_date) = CURDATE();Code language: SQL (Structured Query Language) (sql)

创建 MySQL 今日存储函数

如果您在查询中经常使用CURDATE()函数,并且希望将其替换为today()函数以使查询更具可读性,则可以创建自己的存储函数,名为today() ,如下所示:

DELIMITER $$
CREATE FUNCTION today()
RETURNS DATE
BEGIN
RETURN CURDATE();
END$$
DELIMITER ;Code language: SQL (Structured Query Language) (sql)

现在,您可以使用您创建的today()函数,如下所示:

mysql> SELECT today();
+------------+
| today()    |
+------------+
| 2017-07-08 |
+------------+
1 row in set (0.00 sec)Code language: SQL (Structured Query Language) (sql)

明天怎么样?它应该像这样简单:

mysql> SELECT today() + interval 1 day Tomorrow;
+------------+
| Tomorrow   |
+------------+
| 2017-07-09 |
+------------+
1 row in set (0.00 sec)Code language: SQL (Structured Query Language) (sql)

昨天也很简单:

mysql> SELECT today() - interval 1 day Yesterday;
+------------+
| Yesterday  |
+------------+
| 2017-07-07 |
+------------+
1 row in set (0.00 sec)
Code language: SQL (Structured Query Language) (sql)

在本教程中,您学习了如何使用内置日期函数获取 MySQL 今天的日期。您还学习了如何使用 MySQL 中的存储函数开发自己的 Today 函数。

本教程有帮助吗?