在本教學中,您將通過使用內建的日期函式來了解如何查詢獲取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();
如果您在查詢中使用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中儲存的函式來獲取今天日期的功能。