在 MySQL 中,DATE_SUB()
函数用于将指定时间减去一段时间间隔后得到一个新的日期时间(datetime
)值。其语法如下:
DATE_SUB(date_or_datetime_expr, INTERVAL expr time_unit)
其中,date_or_datetime_expr
表示要进行计算的日期或日期时间;expr
是一个表示时间间隔大小的表达式;time_unit
是要减去的时间单位,可以是 YEAR
、MONTH
、DAY
、HOUR
、MINUTE
或 SECOND
。需要注意的是,expr
表达式可以是一个整数或一个与 date_or_datetime_expr
值类型相同的表达式。
下面是一些示例:
-- 向一个日期加上一年零二个月
SELECT DATE_ADD('2022-06-10', INTERVAL '1-2' YEAR_MONTH);
-- 获取当前时间的一天前的时间
SELECT DATE_SUB(NOW(), INTERVAL 1 DAY);
-- 获取当前时间的一周前的时间(假设以周日为一周的开始)
SELECT DATE_SUB(NOW(), INTERVAL 1 WEEK);
在上面的第二个示例中,我们用 NOW()
函数获取当前时间(一个 datetime
类型的值),然后使用 DATE_SUB()
函数将其减去了一天,得到了一个新的日期时间值;在第三个示例中,我们将当前时间减去了一个星期(WEEK
),因此得到了一周前的时间。
需要注意的是,使用 DATE_SUB()
函数得到的新日期时间值将与原始输入的日期时间格式相同。因此,输入值为日期,输出值也将为日期;输入值为日期时间(datetime
),输出值也将为日期时间。