Istnieje wiele sposobów wykonywania arytmetyki dat w MariaDB. Obejmuje to dodawanie lub odejmowanie określonej liczby danej części daty od wartości daty lub czasu.
W tym artykule przedstawiam 8 sposobów na dodanie godziny do wartości datetime w MariaDB.
DATE_ADD()
Funkcja
DATE_ADD()
funkcja umożliwia dodanie kwoty do wyrażenia daty lub daty i godziny. Obejmuje to dodawanie części czasu, takich jak godzina.
Przykład:
SELECT DATE_ADD('2021-05-01 10:00:00', INTERVAL 1 HOUR);
Wynik:
+--------------------------------------------------+ | DATE_ADD('2021-05-01 10:00:00', INTERVAL 1 HOUR) | +--------------------------------------------------+ | 2021-05-01 11:00:00 | +--------------------------------------------------+
W tym przypadku dodałem godzinę do wyrażenia daty i godziny.
Oto, co się stanie, jeśli podam tylko datę:
SELECT DATE_ADD('2021-05-01', INTERVAL 1 HOUR);
Wynik:
+-----------------------------------------+ | DATE_ADD('2021-05-01', INTERVAL 1 HOUR) | +-----------------------------------------+ | 2021-05-01 01:00:00 | +-----------------------------------------+
Część czasu jest dodawana do wyniku i zakłada się, że początkowy czas to 00:00:00
.
Jeśli potrzebujesz dodać więcej niż godzinę, użyj tego numeru zamiast 1
. Zwróć uwagę, że HOUR
słowo kluczowe pozostaje w liczbie różnej niezależnie od:
SELECT DATE_ADD('2021-05-01 10:00:00', INTERVAL 2 HOUR);
Wynik:
+--------------------------------------------------+ | DATE_ADD('2021-05-01 10:00:00', INTERVAL 2 HOUR) | +--------------------------------------------------+ | 2021-05-01 12:00:00 | +--------------------------------------------------+
Możliwe jest również użycie innej jednostki daty/czasu z odpowiednim numerem tej jednostki. Dlatego możesz określić określoną liczbę minut, na przykład 60 lub 120.
Przykład:
SELECT DATE_ADD('2021-05-01 10:00:00', INTERVAL 60 MINUTE);
Wynik:
+-----------------------------------------------------+ | DATE_ADD('2021-05-01 10:00:00', INTERVAL 60 MINUTE) | +-----------------------------------------------------+ | 2021-05-01 11:00:00 | +-----------------------------------------------------+
Możesz również użyć złożonej jednostki daty/godziny, aby dodać wiele jednostek. Na przykład, jeśli chcesz dodać 1 godzinę i 30 minut, możesz to zrobić:
SELECT
DATE_ADD('2021-05-01 10:00:00', INTERVAL '1:30' HOUR_MINUTE);
Wynik:
+--------------------------------------------------------------+ | DATE_ADD('2021-05-01 10:00:00', INTERVAL '1:30' HOUR_MINUTE) | +--------------------------------------------------------------+ | 2021-05-01 11:30:00 | +--------------------------------------------------------------+
Zobacz MariaDB Date and Time Units, aby uzyskać pełną listę jednostek daty/czasu.
ADDDATE()
Funkcja
Innym sposobem dodania godziny do wyrażenia daty i godziny jest użycie funkcji ADDDATE()
funkcjonować. Ta funkcja ma dwie składnie:
- Jedna składnia pozwala dodać liczbę dni do daty, czego nie robimy tutaj (chyba że planujemy dodać 24 godziny).
- Inna składnia jest taka sama jak w przypadku
DATE_ADD()
funkcja powyżej. Używając tej składni,ADDDATE()
jest synonimemDATE_ADD()
.
Przykład:
SELECT ADDDATE('2021-05-01 10:00:00', INTERVAL 1 HOUR);
Wynik:
+-------------------------------------------------+ | ADDDATE('2021-05-01 10:00:00', INTERVAL 1 HOUR) | +-------------------------------------------------+ | 2021-05-01 11:00:00 | +-------------------------------------------------+
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 10:00:00', INTERVAL -1 HOUR);
Wynik:
+---------------------------------------------------+ | DATE_SUB('2021-05-01 10:00:00', INTERVAL -1 HOUR) | +---------------------------------------------------+ | 2021-05-01 11:00:00 | +---------------------------------------------------+
SUBDATE()
Funkcja
SUBDATE()
funkcja jest synonimem DATE_SUB()
używając następującej składni.
Przykład:
SELECT SUBDATE('2021-05-01 10:00:00', INTERVAL -1 HOUR);
Wynik:
+--------------------------------------------------+ | SUBDATE('2021-05-01 10:00:00', INTERVAL -1 HOUR) | +--------------------------------------------------+ | 2021-05-01 11:00:00 | +--------------------------------------------------+
+
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ę godzin do naszej daty.
Przykład:
SELECT '2021-05-01 10:00:00' + INTERVAL 1 HOUR;
Wynik:
+-----------------------------------------+ | '2021-05-01 10:00:00' + INTERVAL 1 HOUR | +-----------------------------------------+ | 2021-05-01 11:00:00 | +-----------------------------------------+
-
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 10:00:00' - INTERVAL -1 HOUR;
Wynik:
+------------------------------------------+ | '2021-05-01 10:00:00' - INTERVAL -1 HOUR | +------------------------------------------+ | 2021-05-01 11:00:00 | +------------------------------------------+
ADDTIME()
Funkcja
Możesz użyć ADDTIME()
funkcja dodawania liczby godzin do wyrażenia daty i godziny.
Przykład:
SELECT ADDTIME('2021-05-01 10:30:45', '01:0:0');
Wynik:
+------------------------------------------+ | ADDTIME('2021-05-01 10:30:45', '01:0:0') | +------------------------------------------+ | 2021-05-01 11:30:45 | +------------------------------------------+
Jedną z zalet tej funkcji jest możliwość zmiany innych jednostek czasu, takich jak minuty, sekundy itp.
SUBTIME()
Funkcja
Alternatywnie możesz to zmienić i użyć SUBTIME()
z ujemną wartością, jeśli sobie tego życzysz:
SELECT SUBTIME('2021-05-01 10:30:45', '-01:0:0');
Wynik:
+-------------------------------------------+ | SUBTIME('2021-05-01 10:30:45', '-01:0:0') | +-------------------------------------------+ | 2021-05-01 11:30:45 | +-------------------------------------------+
Inne jednostki daty i czasu
Powyższe przykłady dodają liczbę godzin do wartości datetime, ale możemy użyć tych samych technik, aby dodać dowolną jednostkę daty/czasu. Zobacz MariaDB Date and Time Units, aby uzyskać pełną listę jednostek daty/czasu, których można używać z powyższymi funkcjami i operatorami.