Hier zijn enkele opties voor het aftrekken van een of meer uren van een datetime-waarde in MariaDB.
De SUBTIME() Functie
De SUBTIME() trekt een bepaalde hoeveelheid tijd af van een tijd- of datetime-waarde.
Voorbeeld:
SELECT SUBTIME('2021-05-01 10:00:00', '01:00:00'); Resultaat:
+--------------------------------------------+
| SUBTIME('2021-05-01 10:00:00', '01:00:00') |
+--------------------------------------------+
| 2021-05-01 09:00:00 |
+--------------------------------------------+ U kunt ook de andere tijdseenheden wijzigen, zoals minuten, seconden, enz.
De DATE_SUB() Functie
De DATE_SUB() Met deze functie kunt u een bepaald aantal datum/tijd-eenheden aftrekken van een datum- of datetime-uitdrukking. Daarom kunnen we deze functie gebruiken om de datetime-waarde te retourneren, minus een bepaald aantal uren.
Voorbeeld:
SELECT DATE_SUB('2021-05-01 10:00:00', INTERVAL 1 HOUR); Resultaat:
+--------------------------------------------------+
| DATE_SUB('2021-05-01 10:00:00', INTERVAL 1 HOUR) |
+--------------------------------------------------+
| 2021-05-01 09:00:00 |
+--------------------------------------------------+ U kunt ook samengestelde datum- en tijdseenheden gebruiken. U kunt bijvoorbeeld uren en minuten in één keer doen.
Voorbeeld:
SELECT DATE_SUB('2021-05-01 10:00:00', INTERVAL '15:30' HOUR_MINUTE); Resultaat:
+---------------------------------------------------------------+
| DATE_SUB('2021-05-01 10:00:00', INTERVAL '15:30' HOUR_MINUTE) |
+---------------------------------------------------------------+
| 2021-04-30 18:30:00 |
+---------------------------------------------------------------+ Alleen de datum doorgeven
Dit is wat er gebeurt als we alleen een datumwaarde geven:
SELECT DATE_SUB('2021-05-01', INTERVAL 1 HOUR); Resultaat:
+-----------------------------------------+
| DATE_SUB('2021-05-01', INTERVAL 1 HOUR) |
+-----------------------------------------+
| 2021-04-30 23:00:00 |
+-----------------------------------------+
Het gaat ervan uit dat de tijd begint om 00:00:00, en dus het HOUR het bedrag wordt daarvan afgetrokken.
Meerdere uren
Als je meer dan een uur moet aftrekken, gebruik dan dat getal in plaats van 1 . Echter, de HOUR zoekwoord blijft hoe dan ook niet-meervoud:
SELECT DATE_SUB('2021-05-01 10:00:00', INTERVAL 2 HOUR); Resultaat:
+--------------------------------------------------+
| DATE_SUB('2021-05-01 10:00:00', INTERVAL 2 HOUR) |
+--------------------------------------------------+
| 2021-05-01 08:00:00 |
+--------------------------------------------------+ De aftrekkingsoperator (- )
Een andere manier om uren van een datetime-expressie af te trekken, is door de operator voor aftrekken (-) te gebruiken ), ook wel de min-operator genoemd.
Voorbeeld:
SELECT '2021-05-01 10:00:00' - INTERVAL 48 HOUR; Resultaat:
+------------------------------------------+ | '2021-05-01 10:00:00' - INTERVAL 48 HOUR | +------------------------------------------+ | 2021-04-29 10:00:00 | +------------------------------------------+
De toevoegingsoperator (+ )
U kunt ook de opteloperator gebruiken (+ ) samen met een negatief bedrag.
Voorbeeld:
SELECT '2021-05-01 10:00:00' + INTERVAL -48 HOUR; Resultaat:
+-------------------------------------------+ | '2021-05-01 10:00:00' + INTERVAL -48 HOUR | +-------------------------------------------+ | 2021-04-29 10:00:00 | +-------------------------------------------+
Andere manieren om uren af te trekken
Hier zijn enkele andere benaderingen die u zou kunnen gebruiken om een of meer uren van een datetime-waarde af te trekken:
- De
ADDTIME()functie (als u een negatief bedrag opgeeft, wordt dat bedrag afgetrokken van de datetime-waarde). - De
SUBDATE()functie (dit is een synoniem voorDATE_SUB()wanneer gebruikt met dezelfde syntaxis). - De
DATE_ADD()functie (als u een negatief bedrag opgeeft, wordt dat bedrag afgetrokken van de datetime-waarde). - De
ADDDATE()functie (als u een negatief bedrag opgeeft, wordt dat bedrag afgetrokken van de datetime-waarde).