# 获取今天的日期

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

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

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

```sql
SELECT 
    column_list
FROM
    table_name
WHERE
    expired_date = today;
```

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

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

或者可以从[NOW()](http://www.yiibai.com/mysql/now.html)函数返回的当前时间获取日期部分：

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

所以查询应该改为：

```sql
SELECT 
    column_list
FROM
    table_name
WHERE
    expired_date = CURDATE();
```

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

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

## 创建MySQL今天存储过程

如果您在查询中使用[CURDATE()](http://www.yiibai.com/mysql/curdate.html)函数，并且希望将其替换为`today()`函数以使查询更易读，则可以按如下所示创建名为`today()`的自己存储的函数：

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

现在，您可以使用创建的`today()`函数，如下所示：

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

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

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

同样，获取昨天日期也很容易：

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

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