Her er nogle muligheder for at trække en eller flere timer fra en datetime-værdi i MariaDB.
SUBTIME() Funktion
SUBTIME() trækker en given mængde tid fra en værdi for tid eller dato.
Eksempel:
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 også ændre de andre tidsenheder, såsom minutter, sekunder osv.
DATE_SUB() Funktion
DATE_SUB() funktionen giver dig mulighed for at trække et bestemt antal dato/tidsenheder fra et dato- eller datetime-udtryk. Derfor kan vi bruge denne funktion til at returnere datetime-værdien minus et vist antal timer.
Eksempel:
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 også bruge sammensatte dato- og tidsenheder. For eksempel kan du lave timer og minutter på én gang.
Eksempel:
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 |
+---------------------------------------------------------------+ Passer Just the Date
Her er, hvad der sker, hvis vi kun angiver en datoværdi:
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 antager, at klokkeslættet starter kl. 00:00:00, og så HOUR beløb trækkes fra det.
Flere timer
Hvis du har brug for at trække mere end én time fra, skal du bare bruge det tal i stedet for 1 . Men HOUR søgeord forbliver ikke-flertal uanset:
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 (- )
En anden måde at trække timer fra et datetime-udtryk på er at bruge subtraktionsoperatoren (- ), også kendt som minusoperatoren.
Eksempel:
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 | +------------------------------------------+
Additionsoperatøren (+ )
Du kan alternativt bruge additionsoperatoren (+ ) sammen med et negativt beløb.
Eksempel:
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 | +-------------------------------------------+
Andre måder at trække timer på
Her er nogle andre fremgangsmåder, du kan bruge til at trække en eller flere timer fra en dato-tidsværdi:
ADDTIME()funktion (hvis du angiver et negativt beløb, trækkes dette beløb fra dato-tidsværdien).SUBDATE()funktion (dette er et synonym forDATE_SUB()når det bruges med samme syntaks).DATE_ADD()funktion (hvis du angiver et negativt beløb, trækkes dette beløb fra dato-tidsværdien).ADDDATE()funktion (hvis du angiver et negativt beløb, trækkes dette beløb fra dato-tidsværdien).