MariaDB udostępnia kilka sposobów na dodanie roku lub określonej liczby lat do podanej daty. Na przykład możesz dodać 1 rok, 10 lat, 30 lat itd.
Oto 6 sposobów na dodanie roku do daty w MariaDB.
DATE_ADD()
Funkcja
DATE_ADD()
funkcja umożliwia dodanie kwoty do terminu. Na przykład możesz dodać liczbę dni, tygodni, miesięcy, lat itp.
Przykład:
SELECT DATE_ADD('2021-05-01', INTERVAL 1 YEAR);
Wynik:
+-----------------------------------------+ | DATE_ADD('2021-05-01', INTERVAL 1 YEAR) | +-----------------------------------------+ | 2022-05-01 | +-----------------------------------------+
Nie ma reguły, która mówi, że może to być tylko 1 rok. Możesz dodać wiele lat. Tak czy inaczej, YEAR
słowo kluczowe nie jest liczbą mnogą:
SELECT DATE_ADD('2021-05-01', INTERVAL 10 YEAR);
Wynik:
+------------------------------------------+ | DATE_ADD('2021-05-01', INTERVAL 10 YEAR) | +------------------------------------------+ | 2031-05-01 | +------------------------------------------+
Możliwe jest również użycie innej jednostki daty/czasu z odpowiednim numerem tej jednostki. Jednak to podejście należy stosować ostrożnie, ponieważ może to spowodować nieoczekiwane wyniki.
Przykład:
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;
Wynik:
+------------+------------+------------+------------+ | Days | Weeks | Months | Years | +------------+------------+------------+------------+ | 2022-05-01 | 2022-04-30 | 2022-05-01 | 2022-05-01 | +------------+------------+------------+------------+
W tym przypadku dodanie 52 tygodni dało inny wynik niż użycie 365 dni, 12 miesięcy i 1 roku.
Jeśli przesuniemy datę o kilka lat do przodu, uzyskamy jeszcze większą niespójność:
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;
Wynik:
+------------+------------+------------+------------+ | Days | Weeks | Months | Years | +------------+------------+------------+------------+ | 2024-04-30 | 2024-04-29 | 2024-05-01 | 2024-05-01 | +------------+------------+------------+------------+
Tym razem przy użyciu MONTH
i YEAR
zwraca ten sam wynik, ale DAY
i WEEK
zwraca dwie różne daty, z których obie różnią się od MONTH
i YEAR
wyniki.
ADDDATE()
Funkcja
Innym sposobem dodania roku do daty jest użycie funkcji ADDDATE()
funkcjonować. Ta funkcja ma dwie składnie. Jedna składnia pozwala dodać do daty liczbę dni. Druga składnia jest taka sama jak w przypadku DATE_ADD()
funkcja powyżej. Używając tej składni, ADDDATE()
jest synonimem DATE_ADD()
.
Przykład:
SELECT ADDDATE('2021-05-01', INTERVAL 1 YEAR);
Wynik:
+----------------------------------------+ | ADDDATE('2021-05-01', INTERVAL 1 YEAR) | +----------------------------------------+ | 2022-05-01 | +----------------------------------------+
DATE_SUB()
Funkcja
DATE_SUB()
funkcja umożliwia odejmowanie kwota do daty. Jeśli jednak podasz wartość ujemną do odjęcia, zostanie ona dodana do daty.
Przykład:
SELECT DATE_SUB('2021-05-01', INTERVAL -1 YEAR);
Wynik:
+------------------------------------------+ | DATE_SUB('2021-05-01', INTERVAL -1 YEAR) | +------------------------------------------+ | 2022-05-01 | +------------------------------------------+
SUBDATE()
Funkcja
SUBDATE()
funkcja jest synonimem DATE_SUB()
używając następującej składni.
Przykład:
SELECT SUBDATE('2021-05-01', INTERVAL -1 YEAR);
Wynik:
+-----------------------------------------+ | SUBDATE('2021-05-01', INTERVAL -1 YEAR) | +-----------------------------------------+ | 2022-05-01 | +-----------------------------------------+
+
Operator
Inną opcją jest użycie +
operator.
+
Operator jest używany do dodawania i możemy go używać w datach, wraz z odpowiednią jednostką daty/godziny, aby dodać określoną liczbę lat do naszej daty.
Przykład:
SELECT '2021-05-01' + INTERVAL 1 YEAR;
Wynik:
+--------------------------------+ | '2021-05-01' + INTERVAL 1 YEAR | +--------------------------------+ | 2022-05-01 | +--------------------------------+
-
Operator
-
Operator może służyć do odejmowania kwoty od daty. Ale jeśli jest używany do odejmowania liczby ujemnej, wynikiem jest dodatnia kwota dodana do daty:
SELECT '2021-05-01' - INTERVAL -1 YEAR;
Wynik:
+---------------------------------+ | '2021-05-01' - INTERVAL -1 YEAR | +---------------------------------+ | 2022-05-01 | +---------------------------------+
Inne jednostki daty i czasu
Powyższe przykłady dodają liczbę lat do daty, ale możemy użyć tych samych technik, aby dodać dowolną jednostkę daty/czasu. Zobacz jednostki daty i czasu MariaDB, aby uzyskać pełną listę jednostek daty/czasu, których można używać z powyższymi funkcjami i operatorem.