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