# 日期函数

URL: https://caijiao.org/mariadb/data/functions/date
Source: docs/mariadb/data/functions/date.md
Description: 本节介绍 MariaDB 中常用的日期和时间函数，包括获取当前时间、日期格式转换、日期计算和提取时间部分，方便进行时间相关的数据处理。

## 1. 获取当前日期和时间

- `NOW()` 返回当前的日期和时间（精确到秒）。
- `CURDATE()` 返回当前日期（不含时间）。
- `CURTIME()` 返回当前时间。

```sql
SELECT NOW(), CURDATE(), CURTIME();
````

## 2. 日期格式化

* `DATE_FORMAT(date, format)` 按指定格式输出日期。

```sql
SELECT DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s');
```

常用格式：

* `%Y` 年（四位）
* `%m` 月（两位）
* `%d` 日（两位）
* `%H` 小时（24小时制）
* `%i` 分钟
* `%s` 秒

## 3. 日期加减

* `DATE_ADD(date, INTERVAL expr unit)` 日期加上指定时间间隔。
* `DATE_SUB(date, INTERVAL expr unit)` 日期减去指定时间间隔。

```sql
SELECT DATE_ADD(NOW(), INTERVAL 7 DAY);
SELECT DATE_SUB(CURDATE(), INTERVAL 1 MONTH);
```

单位示例：SECOND, MINUTE, HOUR, DAY, MONTH, YEAR 等。

## 4. 提取日期部分

* `YEAR(date)` 返回年份。
* `MONTH(date)` 返回月份。
* `DAY(date)` 返回日。
* `HOUR(time)` 返回小时。
* `MINUTE(time)` 返回分钟。
* `SECOND(time)` 返回秒。

```sql
SELECT YEAR(NOW()), MONTH(NOW()), DAY(NOW());
```

## 5. 计算日期差

* `DATEDIFF(date1, date2)` 返回两个日期之间的天数差。

```sql
SELECT DATEDIFF('2025-05-19', '2025-01-01');
```

---

掌握日期函数，有助于灵活处理时间相关的业务需求。
