在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 日期和时间单位,了解可与上述函数和运算符一起使用的日期/时间单位的完整列表。