在本教程中,您将通过使用内置的日期函数来了解如何查询获取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中存储的函数来获取今天日期的功能。