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