获取今天的日期

在本教程中,您将通过使用内置的日期函数来了解如何查询获取MySQL今天的日期数据。

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

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

SELECT 
    column_list
FROM
    table_name
WHERE
    expired_date = today;

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

mysql> SELECT CURDATE() today;
+------------+
| today      |
+------------+
| 2018-07-31 |
+------------+
1 row in set

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

mysql> SELECT DATE(NOW()) today;
+------------+
| today      |
+------------+
| 2018-07-31 |
+------------+
1 row in set

所以查询应该改为:

SELECT 
    column_list
FROM
    table_name
WHERE
    expired_date = CURDATE();

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

SELECT 
    column_list
FROM
    table_name
WHERE
    DATE(expired_date) = CURDATE();

创建MySQL今天存储过程

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

DELIMITER $$
CREATE FUNCTION today()
RETURNS DATE
BEGIN
RETURN CURDATE();
END$$
DELIMITER ;

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

mysql> SELECT today();
+------------+
| today()    |
+------------+
| 2017-07-31 |
+------------+
1 row in set

那么怎么样获取明天日期呢? 它应该是简单的:

mysql> SELECT today() + interval 1 day Tomorrow;
+------------+
| Tomorrow   |
+------------+
| 2017-08-01 |
+------------+
1 row in set

同样,获取昨天日期也很容易:

mysql> SELECT today() - interval 1 day Yesterday;
+------------+
| Yesterday  |
+------------+
| 2017-07-30 |
+------------+
1 row in set

在本教程中,您已经学会了如何使用内置的日期函数来获取MySQL今天的日期。 您还学习了如何使用MySQL中存储的函数来获取今天日期的功能。

Last updated