MariaDBは、特定の日付に1年または特定の年数を追加するいくつかの方法を提供します。たとえば、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 | +------------+------------+------------+------------+
今回はMONTHを使用します およびYEAR 同じ結果を返しますが、 DAY およびWEEK 2つの異なる日付を返します。どちらもMONTHとは異なります。 およびYEAR 結果。
ADDDATE() 機能
日付に年を追加する別の方法は、 ADDDATE()を使用することです。 働き。この関数には2つの構文があります。 1つの構文では、日付に日数を追加できます。その他の構文は、 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 |
+-----------------------------------------+
+ オペレーター
別のオプションは、 +を使用することです オペレーター。
+ 演算子は加算を実行するために使用され、日付に使用して、該当する日付/時刻の単位とともに、日付に特定の年数を追加できます。
例:
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の日付と時刻の単位を参照してください。