MariaDB DATE_SUB() 函数使用指南
在 MariaDB 中,DATE_SUB()
是一个内置函数,它在指定的日期/时间上减去指定到时间间隔加并返回新的日期/时间。
MariaDB DATE_SUB()
语法
这是 MariaDB DATE_SUB()
函数的语法:
DATE_SUB(date, INTERVAL value unit)
参数
date
- 必需的。需要操作的日期。
days
- 必需的。在
date
上减去的天数。 value
- 必需的。时间/日期间隔。正数和负数都是允许的。
unit
- 必需的。时间/日期间隔的单位。
时间/日期间隔的单位可以是以下值中的一个:
MICROSECOND
SECOND
MINUTE
HOUR
DAY
WEEK
MONTH
QUARTER
YEAR
SECOND_MICROSECOND
MINUTE_MICROSECOND
MINUTE_SECOND
HOUR_MICROSECOND
HOUR_SECOND
HOUR_MINUTE
DAY_MICROSECOND
DAY_SECOND
DAY_MINUTE
DAY_HOUR
YEAR_MONTH
如果您不提供参数或提供了错误数量的参数,MariaDB 将报告一个错误:ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 1
。
返回值
MariaDB DATE_SUB()
函数指定的日期/时间添加指定的时间间隔,并返回一个新的日期/时间。DATE_SUB()
函数的返回值和参数有关:
- 如果
date
参数是DATE
类型,并且时间间隔为YEAR
,MONTH
或者DAY
,返回DATE
。 - 如果
date
参数是DATE
类型,并且时间间隔为HOURS
,MINUTES
或者SECONDS
,返回DATETIME
。 - 如果
date
参数是DATETIME
类型,返回DATETIME
。 - 如果
date
参数是TIME
类型,并且时间间隔为YEAR
,MONTH
或者DAY
,返回DATETIME
。 - 其他情况下返回字符串。
MariaDB DATE_SUB()
示例
示例 1 - 减去
SELECT
DATE_SUB('2023-01-06', INTERVAL 1 DAY),
DATE_SUB('2023-01-06', INTERVAL 1 MONTH),
DATE_SUB('2023-01-06', INTERVAL 1 YEAR)\G
输出:
DATE_SUB('2023-01-06', INTERVAL 1 DAY): 2023-01-05
DATE_SUB('2023-01-06', INTERVAL 1 MONTH): 2022-12-06
DATE_SUB('2023-01-06', INTERVAL 1 YEAR): 2022-01-06
示例 2 - 添加
MariaDB DATE_SUB()
允许通过提供要给负值以添加给定的时间间隔:
SELECT
DATE_SUB('2023-01-06', INTERVAL -1 DAY),
DATE_SUB('2023-01-06', INTERVAL -1 MONTH),
DATE_SUB('2023-01-06', INTERVAL -1 YEAR)\G
输出:
DATE_SUB('2023-01-06', INTERVAL -1 DAY): 2023-01-07
DATE_SUB('2023-01-06', INTERVAL -1 MONTH): 2023-02-06
DATE_SUB('2023-01-06', INTERVAL -1 YEAR): 2024-01-06
示例 3 - 日期时间
MariaDB DATE_SUB()
函数支持您使用日期时间值:
SELECT DATE_SUB('2023-01-06 10:11:12', INTERVAL 1 HOUR);
输出:
+--------------------------------------------------+
| DATE_SUB('2023-01-06 10:11:12', INTERVAL 1 HOUR) |
+--------------------------------------------------+
| 2023-01-06 09:11:12 |
+--------------------------------------------------+
同样,您可以使用其他时间单位,比如一年:
SELECT DATE_SUB('2023-01-06 10:11:12', INTERVAL 1 YEAR);
输出:
+--------------------------------------------------+
| DATE_SUB('2023-01-06 10:11:12', INTERVAL 1 YEAR) |
+--------------------------------------------------+
| 2022-01-06 10:11:12 |
+--------------------------------------------------+
结论
在 MariaDB 中,DATE_SUB()
是一个内置函数,它在指定的日期/时间上减去指定到时间间隔加并返回运算结果。