跳到主要内容

MINUTES_ADD

描述

MINUTES_ADD 函数用于向输入的日期时间值中添加指定的分钟数,并返回计算后的新日期时间值。该函数支持处理 DATE、DATETIME类型。

该函数与 date_add 函数 和 mysql 的 date-add 函数 使用 MINUTE 为单位的行为一致。

语法

MINUTES_ADD(`<date_or_time_expr>`, `<minutes>`)

参数

参数说明
<date_or_time_expr>输入的日期时间值,类型可以是 DATE、DATETIME ,具体 datetime/date 请查看 datetime 的转换, date 的转换,
<minutes>要增加的分钟数,类型为 BIGINT,可以为正数或负数

返回值

返回 DATETIME 类型的值,表示基准时间添加指定分钟后的结果。

  • <minutes> 为负数,函数效果等同于从基准时间中减去对应分钟数(即 MINUTES_ADD(date, -n) 等价于 MINUTES_SUB(date, n))。
  • 若输入为 DATE 类型(仅包含年月日),默认其时间部分为 00:00:00。
  • 若输入的日期时间包含微秒部分,添加分钟后会保留原微秒精度(如 '2023-01-01 00:00:00.123456' 添加 1 分钟后为 '2023-01-01 00:01:00.123456')。
  • 若计算结果超出 DATETIME 类型的有效范围(0000-01-01 00:00:00 至 9999-12-31 23:59:59.999999),抛出异常。
  • 若任一参数为 NULL,返回 NULL。

举例

--- 向 DATE 类型添加分钟(默认时间 00:00:00)
SELECT MINUTES_ADD('2020-02-02', 1) AS result;
+---------------------+
| result |
+---------------------+
| 2020-02-02 00:01:00 |
+---------------------+

--- 向 DATETIME 添加分钟
SELECT MINUTES_ADD('2023-07-13 22:28:18', 5) AS result;
+---------------------+
| result |
+---------------------+
| 2023-07-13 22:33:18 |
+---------------------+


--- 包含微秒的时间(保留精度)
SELECT MINUTES_ADD('2023-07-13 22:28:18.456789', 10) AS result;
+----------------------------+
| result |
+----------------------------+
| 2023-07-13 22:38:18.456789 |
+----------------------------+

--- 负数分钟(等价于减法)
SELECT MINUTES_ADD('2023-07-13 22:28:18', -5) AS result;
+---------------------+
| result |
+---------------------+
| 2023-07-13 22:23:18 |
+---------------------+

--- 任一参数为 NULL,返回 NULL
SELECT MINUTES_ADD(NULL, 10), MINUTES_ADD('2023-07-13 22:28:18', NULL) AS result;
+-------------------------+--------+
| minutes_add(NULL, 10) | result |
+-------------------------+--------+
| NULL | NULL |
+-------------------------+--------+

--- 计算结果超出日期时间范围,报错
SELECT MINUTES_ADD('9999-12-31 23:59:59', 2) AS result;
ERROR 1105 (HY000): errCode = 2, detailMessage = (10.16.10.3)[E-218]Operation minutes_add of 9999-12-31 23:59:59, 2 out of range