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).