sql >> Database teknologi >  >> RDS >> MariaDB

Sådan trækker du timer fra en dato-tidsværdi i MariaDB

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

  1. mysql_fetch_array, mysql_fetch_assoc, mysql_fetch_object

  2. ClassCastException:java.math.BigInteger kan ikke castes til java.lang.Long på forbindelse til MySQL

  3. Skift af Django-projekt fra sqlite3-backend til postgresql mislykkes ved indlæsning af datadump

  4. Henter UTF-8 tekst fra MySQL i R returnerer ????