sql >> Database teknologi >  >> RDS >> Mysql

Sådan tilføjer du tid til en Datetime-værdi i MySQL

Problem:

Du vil gerne tilføje en vis mængde tid til en datetime-værdi i en MySQL-database.

Eksempel:

Vores database har en tabel ved navn flight_schedule med data i kolonnerne flight , aircraft , og arrival_datetime .

flyvning fly arrival_datetime
EK10 L1201 2019-04-20 15:15:00
AY12 K2001 2019-03-31 20:10:00
LA105 F205 2019-08-03 11:15:00
LH30 K256 2019-07-01 12:47:00

Lad os få flykoden, flykoden og en ny ankomstdato og et nyt tidspunkt for hver flyvning. For at beregne new_arrival_datetime , tilføjer vi 2 timer og 10 minutter til det aktuelle tidspunkt for hver ankomst – det er hvor meget disse fly er blevet forsinket.

Løsning:

Vi bruger ADDTIME() fungere. Her er den forespørgsel, du ville skrive:

SELECT flight,
       aircraft,
       ADDTIME(arrival_datetime, ‘2:10’) 
         AS new_arrival_datetime
FROM flight_schedule;

Her er resultatet af forespørgslen:

flyvning fly new_arrival_datetime
EK10 L1201 2019-04-20 17:25:00
AY12 K2001 2019-03-31 22:20:00
LA105 F205 2019-08-03 13:25:00
LH30 K256 2019-07-01 14:57:00

Diskussion:

Brug funktionen TILFØJ TID() hvis du vil vælge en ny dato og klokkeslæt ved at tilføje et givet klokkeslæt til en værdi for dato/tidsstempel/tidspunkt.

Denne funktion tager to argumenter. Det første argument er dato/klokkeslæt, som vi tilføjer tid til; dette kan være et udtryk, der returnerer en tid/datotid/tidsstempelværdi eller navnet på en tid/datotid/tidsstempelkolonne. I vores eksempel bruger vi arrival_datetime kolonne, som er af datetime datatype.

Det andet argument er en streng, der indeholder mængden af ​​tid, der skal føjes til det første argument (i vores eksempel '2:10' eller 2 timer og 10 minutter).

Du kan også tilføje brøkdele af sekunder og endda dage til en dato/tid-værdi. Forespørgslen nedenfor føjer 3 dage, 1 time, 1 minut, 1 sekund og 111 brøksekunder til en dato og et klokkeslæt:

SELECT ADDTIME('2019-02-05 10:12:11', '3 1:1:1.111'); 

Det returnerer:

2019-02-08 11:13:12.111000

ADDTIME() returnerer en streng med den nye tid. I vores eksempel er det nye ankomsttidspunkt for fly ‘EK10’ er "2019-04-20 17:25:00" - to timer og ti minutter efter den oprindelige dato

‘2019-04-20 15:15:00’.   

  1. PostgreSQL-sekvens baseret på en anden kolonne

  2. php mysqli_connect:godkendelsesmetode ukendt for klienten [caching_sha2_password]

  3. Grundlæggende om tabeludtryk, del 9 – Visninger, sammenlignet med afledte tabeller og CTE'er

  4. Ny udgivelse:Spotlight Tuning Pack 7.1.9