在MariaDB中为日期添加年份的6种方法

发布于

MariaDB 提供了几种将一年或一定数量的年份添加到给定日期的方法。例如,您可能希望添加 1 年、10 年、30 年等。

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

函数DATE_ADD()

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

例:

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

结果:

+—————————————–+ | DATE_ADD(‘2021-05-01’, INTERVAL 1 YEAR) | +—————————————–+ | 2022-05-01 | +—————————————–+

没有规定说它只能是 1 年。您可以添加多年。无论哪种方式,关键字仍然是非复数:YEAR

SELECT DATE_ADD('2021-05-01', INTERVAL 10 YEAR);

结果:

+——————————————+ | DATE_ADD(‘2021-05-01’, INTERVAL 10 YEAR) | +——————————————+ | 2031-05-01 | +——————————————+

也可以使用具有适当数量的该单位的另一个日期/时间单位。但是,应谨慎使用此方法,因为它可能会导致意外结果。

例:

SELECT 
    DATE_ADD('2021-05-01', INTERVAL 365 DAY) AS Days,
    DATE_ADD('2021-05-01', INTERVAL 52 WEEK) AS Weeks,
    DATE_ADD('2021-05-01', INTERVAL 12 MONTH) AS Months,
    DATE_ADD('2021-05-01', INTERVAL 1 YEAR) AS Years;

结果:

+————+————+————+————+ | Days | Weeks | Months | Years | +————+————+————+————+ | 2022-05-01 | 2022-04-30 | 2022-05-01 | 2022-05-01 | +————+————+————+————+

在这个示例中,添加 52 周与使用 365 天、12 个月和 1 年的结果不同。

如果我们将日期向前移动几年,我们会得到更多的不一致:

SELECT 
    DATE_ADD('2023-05-01', INTERVAL 365 DAY) AS Days,
    DATE_ADD('2023-05-01', INTERVAL 52 WEEK) AS Weeks,
    DATE_ADD('2023-05-01', INTERVAL 12 MONTH) AS Months,
    DATE_ADD('2023-05-01', INTERVAL 1 YEAR) AS Years;

结果:

+————+————+————+————+ | Days | Weeks | Months | Years | +————+————+————+————+ | 2024-04-30 | 2024-04-29 | 2024-05-01 | 2024-05-01 | +————+————+————+————+

这次使用 and 返回相同的结果,但返回两个不同的日期,这两个日期都与 andresult 不同。MONTH``YEAR``DAY``WEEK``MONTH``YEAR

函数ADDDATE()

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

例:

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

结果:

+—————————————-+ | ADDDATE(‘2021-05-01’, INTERVAL 1 YEAR) | +—————————————-+ | 2022-05-01 | +—————————————-+

函数DATE_SUB()

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

例:

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

结果:

+——————————————+ | DATE_SUB(‘2021-05-01’, INTERVAL -1 YEAR) | +——————————————+ | 2022-05-01 | +——————————————+

函数SUBDATE()

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

例:

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

结果:

+—————————————–+ | SUBDATE(‘2021-05-01’, INTERVAL -1 YEAR) | +—————————————–+ | 2022-05-01 | +—————————————–+

操作员+

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

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

例:

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

结果:

+——————————–+ | ‘2021-05-01’ + INTERVAL 1 YEAR | +——————————–+ | 2022-05-01 | +——————————–+

操作员-

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

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

结果:

+———————————+ | ‘2021-05-01’ - INTERVAL -1 YEAR | +———————————+ | 2022-05-01 | +———————————+

其他日期和时间单位

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