Här är några alternativ för att subtrahera en eller flera timmar från ett datetime-värde i MariaDB.
SUBTIME()
Funktion
SUBTIME()
subtraherar en given tidsperiod från ett värde för tid eller datum.
Exempel:
SELECT SUBTIME('2021-05-01 10:00:00', '01:00:00');
Resultat:
+--------------------------------------------+ | SUBTIME('2021-05-01 10:00:00', '01:00:00') | +--------------------------------------------+ | 2021-05-01 09:00:00 | +--------------------------------------------+
Du kan också ändra andra tidsenheter, såsom minuter, sekunder, etc.
DATE_SUB()
Funktion
DATE_SUB()
Med funktionen kan du subtrahera ett visst antal datum-/tidsenheter från ett datum- eller datumuttryck. Därför kan vi använda den här funktionen för att returnera datetime-värdet, minus ett visst antal timmar.
Exempel:
SELECT DATE_SUB('2021-05-01 10:00:00', INTERVAL 1 HOUR);
Resultat:
+--------------------------------------------------+ | DATE_SUB('2021-05-01 10:00:00', INTERVAL 1 HOUR) | +--------------------------------------------------+ | 2021-05-01 09:00:00 | +--------------------------------------------------+
Du kan också använda sammansatta datum- och tidsenheter. Du kan till exempel göra timmar och minuter på en gång.
Exempel:
SELECT DATE_SUB('2021-05-01 10:00:00', INTERVAL '15:30' HOUR_MINUTE);
Resultat:
+---------------------------------------------------------------+ | DATE_SUB('2021-05-01 10:00:00', INTERVAL '15:30' HOUR_MINUTE) | +---------------------------------------------------------------+ | 2021-04-30 18:30:00 | +---------------------------------------------------------------+
Passar Just the Date
Så här händer om vi bara anger ett datumvärde:
SELECT DATE_SUB('2021-05-01', INTERVAL 1 HOUR);
Resultat:
+-----------------------------------------+ | DATE_SUB('2021-05-01', INTERVAL 1 HOUR) | +-----------------------------------------+ | 2021-04-30 23:00:00 | +-----------------------------------------+
Det förutsätter att tiden börjar kl. 00:00:00, och så HOUR
beloppet dras från det.
Flera timmar
Om du behöver subtrahera mer än en timme, använd bara det numret istället för 1
. Men HOUR
sökord förblir icke-plural oavsett:
SELECT DATE_SUB('2021-05-01 10:00:00', INTERVAL 2 HOUR);
Resultat:
+--------------------------------------------------+ | DATE_SUB('2021-05-01 10:00:00', INTERVAL 2 HOUR) | +--------------------------------------------------+ | 2021-05-01 08:00:00 | +--------------------------------------------------+
Subtraktionsoperatören (-
)
Ett annat sätt att subtrahera timmar från ett datetime-uttryck är att använda subtraktionsoperatorn (-
), även känd som minusoperatorn.
Exempel:
SELECT '2021-05-01 10:00:00' - INTERVAL 48 HOUR;
Resultat:
+------------------------------------------+ | '2021-05-01 10:00:00' - INTERVAL 48 HOUR | +------------------------------------------+ | 2021-04-29 10:00:00 | +------------------------------------------+
Tilläggsoperatören (+
)
Du kan alternativt använda additionsoperatorn (+
) tillsammans med ett negativt belopp.
Exempel:
SELECT '2021-05-01 10:00:00' + INTERVAL -48 HOUR;
Resultat:
+-------------------------------------------+ | '2021-05-01 10:00:00' + INTERVAL -48 HOUR | +-------------------------------------------+ | 2021-04-29 10:00:00 | +-------------------------------------------+
Andra sätt att subtrahera timmar
Här är några andra metoder du kan använda för att subtrahera en eller flera timmar från ett datum och tid:
ADDTIME()
funktion (om du anger ett negativt belopp kommer det beloppet att subtraheras från datetime-värdet).SUBDATE()
funktion (detta är en synonym förDATE_SUB()
när den används med samma syntax).DATE_ADD()
funktion (om du anger ett negativt belopp kommer det beloppet att subtraheras från datetime-värdet).ADDDATE()
funktion (om du anger ett negativt belopp kommer det beloppet att subtraheras från datetime-värdet).