MySQL SUBDATE 是常用的日期函数之一,它是 DATE_SUB 的同义词。这个 SUBDATE 函数用于从给定的日期中减去用户指定的间隔,并返回日期和时间。
SUBDATE 函数的基本语法如下所示。
SUBDATE(Date, INTERVAL expression Unit);
SUBDATE(Date expression, days);
MySQL SUBDATE 函数示例
下面给出的查询将帮助您理解此方法的使用。在这里,我们将从给定的 DateTime 表达式中减去 8 微秒、8 秒和 8 分钟。
提示:我建议您参考 日期函数 文章,以了解 MySQL 中 Interval 后面的单位。
SELECT SUBDATE('2016-05-19 11:14:34.0000010', INTERVAL 8 MICROSECOND);
SELECT SUBDATE('2016-05-19 11:14:34.0000010', INTERVAL 8 SECOND);
SELECT SUBDATE('2016-05-19 11:14:34.0000010', INTERVAL 8 MINUTE);

在此示例中,我们从给定的 DateTime 表达式中减去 8 小时和 6 天。在第三个语句中,我们没有使用 Interval。这意味着我们使用了 subdate 函数的第二种语法。
SELECT SUBDATE('2019-02-09 11:14:34', INTERVAL 8 HOUR);
SELECT SUBDATE('2019-02-09 11:14:34', INTERVAL 6 DAY);
SELECT SUBDATE('2019-02-09 11:14:34', 6);

在这个 MySQL SUBDATE 函数示例中,我们从给定的 DateTime 表达式中减去 6 周、6 个月和 2 个季度。
SELECT SUBDATE('2019-02-09 11:14:34', INTERVAL 6 WEEK);
SELECT SUBDATE('2019-02-09 11:14:34', INTERVAL 6 MONTH);
SELECT SUBDATE('2019-02-09 11:14:34', INTERVAL 2 QUARTER);

这里,
- 首先,减去 4 年。
- 第二个语句 - 从给定的日期中减去了 5 天和 8 小时。
- 在第三个语句中,我们减去了 3 年和 8 个月。参考 DATE_SUB
SELECT SUBDATE('2019-02-09 11:14:34', INTERVAL 4 YEAR);
SELECT SUBDATE('2019-02-09 11:14:34', INTERVAL '05 08' DAY_HOUR);
SELECT SUBDATE('2019-02-09', INTERVAL '03-08' YEAR_MONTH);
