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.