MySQL獲取今天的日期

2019-10-16 22:57:07

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