在MariaDB中向日期添加月份的6种方法

发布于

MariaDB 提供了几种对日期执行算术的方法。这包括从给定日期增加或减去一个月(或几个月)。

以下是在 MariaDB 中为日期添加月份的 6 种方法。

奖励更新:我现在添加了第 7 种方法,可以在本文末尾为日期添加一个月。所以我想现在是在 MariaDB 🙂 中为日期添加一个月的 7 种方法

函数DATE_ADD()

该函数允许您向日期添加金额。例如,您可以添加天数、周数、月数、年数等。DATE_ADD()

例:

SELECT DATE_ADD('2021-05-01', INTERVAL 1 MONTH);

结果:

+——————————————+ | DATE_ADD(‘2021-05-01’, INTERVAL 1 MONTH) | +——————————————+ | 2021-06-01 | +——————————————+

如果您需要添加超过一个月,只需使用该数字而不是。但是,无论如何,关键字仍然是非复数:1``MONTH

SELECT DATE_ADD('2021-05-01', INTERVAL 2 MONTH);

结果:

+——————————————+ | DATE_ADD(‘2021-05-01’, INTERVAL 2 MONTH) | +——————————————+ | 2021-07-01 | +——————————————+

也可以使用具有适当数量的该单位的另一个日期/时间单位。因此,您可以指定一定的天数,例如 30 或 31。

例:

SELECT DATE_ADD('2021-05-01', INTERVAL 31 DAY);

结果:

+—————————————–+ | DATE_ADD(‘2021-05-01’, INTERVAL 31 DAY) | +—————————————–+ | 2021-06-01 | +—————————————–+

使用天数时,是否恰好是一个月将取决于所讨论的月份。在上面的例子中,我本可以提供 30 天,但这会使我们在同一个月内:

SELECT DATE_ADD('2021-05-01', INTERVAL 30 DAY);

结果:

+—————————————–+ | DATE_ADD(‘2021-05-01’, INTERVAL 30 DAY) | +—————————————–+ | 2021-05-31 | +—————————————–+

因此,如果您实际上想添加一个月,那么该单位比尝试计算要添加多少天要容易得多。MONTH

函数ADDDATE()

向日期添加月份的另一种方法是使用该函数。此函数有两种语法。一种语法允许您向日期添加天数。其他语法与上面的函数相同。使用此语法时,是同义词。ADDDATE()DATE_ADD()``ADDDATE()``DATE_ADD()

例:

SELECT ADDDATE('2021-05-01', INTERVAL 1 MONTH);

结果:

+—————————————–+ | ADDDATE(‘2021-05-01’, INTERVAL 1 MONTH) | +—————————————–+ | 2021-06-01 | +—————————————–+

函数DATE_SUB()

该函数允许您减_去_日期的金额。但是,如果您提供负值进行减去,则它最终会_添加到_日期中。DATE_SUB()

例:

SELECT DATE_SUB('2021-05-01', INTERVAL -1 MONTH);

结果:

+——————————————-+ | DATE_SUB(‘2021-05-01’, INTERVAL -1 MONTH) | +——————————————-+ | 2021-06-01 | +——————————————-+

函数SUBDATE()

函数是使用以下语法时的同义词。SUBDATE()DATE_SUB()

例:

SELECT SUBDATE('2021-05-01', INTERVAL -1 MONTH);

结果:

+——————————————+ | SUBDATE(‘2021-05-01’, INTERVAL -1 MONTH) | +——————————————+ | 2021-06-01 | +——————————————+

操作员+

另一种选择是使用运算符。+

The运算符用于执行加法,我们可以在日期上使用它,以及适用的日期/时间单位,以将一定数量的月份添加到我们的日期。+

例:

SELECT '2021-05-01' + INTERVAL 1 MONTH;

结果:

+———————————+ | ‘2021-05-01’ + INTERVAL 1 MONTH | +———————————+ | 2021-06-01 | +———————————+

操作员-

运算符可用于从日期中减去金额。但是,如果它用于减去负数,则结果是将正数添加到日期中:-

SELECT '2021-05-01' - INTERVAL -1 MONTH;

结果:

+———————————-+ | ‘2021-05-01’ - INTERVAL -1 MONTH | +———————————-+ | 2021-06-01 | +———————————-+

奖励:功能ADD_MONTHS()

自从我第一次写这篇文章以来,MariaDB 中引入了一个新函数,专门用于向日期添加月份。

调用该函数,并在MariaDB 10.6.1中引入以增强Oracle兼容性。ADD_MONTHS()

所以我想这篇文章应该被称为 7 种方法添加一个_日期……_🙂

例:

SELECT ADD_MONTHS('2020-01-01', 3);

结果:

+—————————–+ | ADD_MONTHS(‘2020-01-01’, 3) | +—————————–+ | 2020-04-01 | +—————————–+

其他日期和时间单位

上面的例子向日期添加了月份数,但我们可以使用相同的技术来添加任何日期/时间单位。请参阅MariaDB 日期和时间单位,了解可与上述函数和运算符一起使用的日期/时间单位的完整列表。