Oto kilka opcji odejmowania jednej lub więcej godzin od wartości daty i godziny w MariaDB.
SUBTIME() Funkcja
SUBTIME() odejmuje określoną ilość czasu od wartości czasu lub daty i godziny.
Przykład:
SELECT SUBTIME('2021-05-01 10:00:00', '01:00:00'); Wynik:
+--------------------------------------------+
| SUBTIME('2021-05-01 10:00:00', '01:00:00') |
+--------------------------------------------+
| 2021-05-01 09:00:00 |
+--------------------------------------------+ Możesz także zmienić inne jednostki czasu, takie jak minuty, sekundy itp.
DATE_SUB() Funkcja
DATE_SUB() Funkcja pozwala odjąć określoną liczbę jednostek daty/czasu od wyrażenia daty lub daty i godziny. Dlatego możemy użyć tej funkcji do zwrócenia wartości daty i godziny pomniejszonej o określoną liczbę godzin.
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 09:00:00 |
+--------------------------------------------------+ Możesz także użyć złożonych jednostek daty i godziny. Na przykład możesz robić godziny i minuty za jednym razem.
Przykład:
SELECT DATE_SUB('2021-05-01 10:00:00', INTERVAL '15:30' HOUR_MINUTE); Wynik:
+---------------------------------------------------------------+
| DATE_SUB('2021-05-01 10:00:00', INTERVAL '15:30' HOUR_MINUTE) |
+---------------------------------------------------------------+
| 2021-04-30 18:30:00 |
+---------------------------------------------------------------+ Przejście samej daty
Oto, co się stanie, jeśli podamy tylko wartość daty:
SELECT DATE_SUB('2021-05-01', INTERVAL 1 HOUR); Wynik:
+-----------------------------------------+
| DATE_SUB('2021-05-01', INTERVAL 1 HOUR) |
+-----------------------------------------+
| 2021-04-30 23:00:00 |
+-----------------------------------------+
Zakłada, że czas zaczyna się o 00:00:00, więc HOUR kwota jest od tego odejmowana.
Wiele godzin
Jeśli potrzebujesz odjąć więcej niż godzinę, użyj tej liczby zamiast 1 . Jednak HOUR słowo kluczowe pozostaje w liczbie różnej niezależnie od:
SELECT DATE_SUB('2021-05-01 10:00:00', INTERVAL 2 HOUR); Wynik:
+--------------------------------------------------+
| DATE_SUB('2021-05-01 10:00:00', INTERVAL 2 HOUR) |
+--------------------------------------------------+
| 2021-05-01 08:00:00 |
+--------------------------------------------------+ Operator odejmowania (- )
Innym sposobem odejmowania godzin od wyrażenia daty i godziny jest użycie operatora odejmowania (- ), znany również jako operator minus.
Przykład:
SELECT '2021-05-01 10:00:00' - INTERVAL 48 HOUR; Wynik:
+------------------------------------------+ | '2021-05-01 10:00:00' - INTERVAL 48 HOUR | +------------------------------------------+ | 2021-04-29 10:00:00 | +------------------------------------------+
Operator dodawania (+ )
Możesz alternatywnie użyć operatora dodawania (+ ) wraz z kwotą ujemną.
Przykład:
SELECT '2021-05-01 10:00:00' + INTERVAL -48 HOUR; Wynik:
+-------------------------------------------+ | '2021-05-01 10:00:00' + INTERVAL -48 HOUR | +-------------------------------------------+ | 2021-04-29 10:00:00 | +-------------------------------------------+
Inne sposoby odejmowania godzin
Oto kilka innych metod, których możesz użyć, aby odjąć jedną lub więcej godzin od wartości daty i godziny:
ADDTIME()funkcja (podanie kwoty ujemnej spowoduje odjęcie tej kwoty od wartości daty/godziny).SUBDATE()funkcja (jest to synonimDATE_SUB()gdy jest używany z tą samą składnią).DATE_ADD()funkcja (podanie kwoty ujemnej spowoduje odjęcie tej kwoty od wartości daty/godziny).ADDDATE()funkcja (podanie kwoty ujemnej spowoduje odjęcie tej kwoty od wartości daty/godziny).