Er zijn veel manieren om datumberekeningen uit te voeren in MariaDB. Dit omvat het optellen of aftrekken van een bepaald aantal van een bepaald datumgedeelte van een datum- of datetime-waarde.
In dit artikel presenteer ik 8 manieren om een uur toe te voegen aan een datetime-waarde in MariaDB.
De DATE_ADD()
Functie
De DATE_ADD()
Met deze functie kunt u een bedrag toevoegen aan een datum- of datetime-expressie. Dit omvat het toevoegen van tijdsdelen, zoals het uur.
Voorbeeld:
SELECT DATE_ADD('2021-05-01 10:00:00', INTERVAL 1 HOUR);
Resultaat:
+--------------------------------------------------+ | DATE_ADD('2021-05-01 10:00:00', INTERVAL 1 HOUR) | +--------------------------------------------------+ | 2021-05-01 11:00:00 | +--------------------------------------------------+
In dit geval heb ik een uur toegevoegd aan de datetime-expressie.
Dit is wat er gebeurt als ik alleen de datum geef:
SELECT DATE_ADD('2021-05-01', INTERVAL 1 HOUR);
Resultaat:
+-----------------------------------------+ | DATE_ADD('2021-05-01', INTERVAL 1 HOUR) | +-----------------------------------------+ | 2021-05-01 01:00:00 | +-----------------------------------------+
Het tijdsdeel wordt toegevoegd aan het resultaat en er wordt aangenomen dat de initiële tijd 00:00:00
was .
Als je meer dan een uur moet toevoegen, gebruik dan dat nummer in plaats van 1
. Merk op dat de HOUR
zoekwoord blijft hoe dan ook niet-meervoud:
SELECT DATE_ADD('2021-05-01 10:00:00', INTERVAL 2 HOUR);
Resultaat:
+--------------------------------------------------+ | DATE_ADD('2021-05-01 10:00:00', INTERVAL 2 HOUR) | +--------------------------------------------------+ | 2021-05-01 12:00:00 | +--------------------------------------------------+
Het is ook mogelijk om een andere datum/tijd-eenheid te gebruiken met het juiste nummer van die eenheid. Daarom kunt u een bepaald aantal minuten specificeren, bijvoorbeeld 60 of 120.
Voorbeeld:
SELECT DATE_ADD('2021-05-01 10:00:00', INTERVAL 60 MINUTE);
Resultaat:
+-----------------------------------------------------+ | DATE_ADD('2021-05-01 10:00:00', INTERVAL 60 MINUTE) | +-----------------------------------------------------+ | 2021-05-01 11:00:00 | +-----------------------------------------------------+
U kunt ook een samengestelde datum/tijd-eenheid gebruiken om meerdere eenheden toe te voegen. Als u bijvoorbeeld 1 uur en 30 minuten wilt toevoegen, kunt u dit doen:
SELECT
DATE_ADD('2021-05-01 10:00:00', INTERVAL '1:30' HOUR_MINUTE);
Resultaat:
+--------------------------------------------------------------+ | DATE_ADD('2021-05-01 10:00:00', INTERVAL '1:30' HOUR_MINUTE) | +--------------------------------------------------------------+ | 2021-05-01 11:30:00 | +--------------------------------------------------------------+
Zie MariaDB-datum- en tijdseenheden voor een volledige lijst met datum-/tijdseenheden.
De ADDDATE()
Functie
Een andere manier om een uur aan een datetime-expressie toe te voegen, is door de ADDDATE()
. te gebruiken functie. Deze functie heeft twee syntaxis:
- Met één syntaxis kun je een aantal dagen toevoegen aan een datum, wat niet is wat we hier doen (tenzij we van plan zijn 24 uur toe te voegen).
- De andere syntaxis is hetzelfde als bij de
DATE_ADD()
functie hierboven. Bij gebruik van deze syntaxis,ADDDATE()
is een synoniem voorDATE_ADD()
.
Voorbeeld:
SELECT ADDDATE('2021-05-01 10:00:00', INTERVAL 1 HOUR);
Resultaat:
+-------------------------------------------------+ | ADDDATE('2021-05-01 10:00:00', INTERVAL 1 HOUR) | +-------------------------------------------------+ | 2021-05-01 11:00:00 | +-------------------------------------------------+
De DATE_SUB()
Functie
De DATE_SUB()
functie stelt u in staat om af te trekken een bedrag tot een datum. Als u echter een negatieve waarde opgeeft om af te trekken, wordt deze uiteindelijk opgeteld tot de datum.
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 11:00:00 | +---------------------------------------------------+
De SUBDATE()
Functie
De SUBDATE()
functie is een synoniem voor DATE_SUB()
bij gebruik van de volgende syntaxis.
Voorbeeld:
SELECT SUBDATE('2021-05-01 10:00:00', INTERVAL -1 HOUR);
Resultaat:
+--------------------------------------------------+ | SUBDATE('2021-05-01 10:00:00', INTERVAL -1 HOUR) | +--------------------------------------------------+ | 2021-05-01 11:00:00 | +--------------------------------------------------+
De +
Operator
Een andere optie is om de +
. te gebruiken exploitant.
De +
operator wordt gebruikt om optellen uit te voeren, en we kunnen het gebruiken op datums, samen met de toepasselijke datum/tijd-eenheid om een bepaald aantal uren aan onze datum toe te voegen.
Voorbeeld:
SELECT '2021-05-01 10:00:00' + INTERVAL 1 HOUR;
Resultaat:
+-----------------------------------------+ | '2021-05-01 10:00:00' + INTERVAL 1 HOUR | +-----------------------------------------+ | 2021-05-01 11:00:00 | +-----------------------------------------+
De -
Operator
De -
operator kan worden gebruikt om een bedrag van een datum af te trekken. Maar als het wordt gebruikt om een negatief getal af te trekken, dan is het resultaat dat er een positief bedrag bij de datum wordt opgeteld:
SELECT '2021-05-01 10:00:00' - INTERVAL -1 HOUR;
Resultaat:
+------------------------------------------+ | '2021-05-01 10:00:00' - INTERVAL -1 HOUR | +------------------------------------------+ | 2021-05-01 11:00:00 | +------------------------------------------+
De ADDTIME()
Functie
U kunt de ADDTIME()
. gebruiken functie om een aantal uren toe te voegen aan een datetime-expressie.
Voorbeeld:
SELECT ADDTIME('2021-05-01 10:30:45', '01:0:0');
Resultaat:
+------------------------------------------+ | ADDTIME('2021-05-01 10:30:45', '01:0:0') | +------------------------------------------+ | 2021-05-01 11:30:45 | +------------------------------------------+
Een voordeel van deze functie is dat u ook de andere tijdseenheden, zoals minuten, seconden, enz. kunt wijzigen.
De SUBTIME()
Functie
Je kunt het ook omdraaien en SUBTIME()
. gebruiken met een negatieve waarde als je dat wilt:
SELECT SUBTIME('2021-05-01 10:30:45', '-01:0:0');
Resultaat:
+-------------------------------------------+ | SUBTIME('2021-05-01 10:30:45', '-01:0:0') | +-------------------------------------------+ | 2021-05-01 11:30:45 | +-------------------------------------------+
Andere datum- en tijdseenheden
De bovenstaande voorbeelden voegen een aantal uren toe aan de datetime-waarde, maar we kunnen dezelfde technieken gebruiken om elke datum/tijd-eenheid toe te voegen. Zie MariaDB-datum- en tijdseenheden voor een volledige lijst van datum-/tijdseenheden die kunnen worden gebruikt met de bovenstaande functies en operators.