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

Come aggiungere l'ora a un valore Datetime in MySQL

Problema:

Vorresti aggiungere una certa quantità di tempo a un valore datetime in un database MySQL.

Esempio:

Il nostro database ha una tabella denominata flight_schedule con i dati nelle colonne flight , aircraft e arrival_datetime .

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

Per ogni volo, otteniamo il codice del volo, il codice dell'aeromobile e una nuova data e ora di arrivo. Per calcolare il new_arrival_datetime , aggiungeremo 2 ore e 10 minuti all'ora corrente per ogni arrivo:ecco quanto sono stati ritardati questi voli.

Soluzione:

Useremo il ADDTIME() funzione. Ecco la domanda che scriveresti:

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

Ecco il risultato della query:

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

Discussione:

Utilizzare la funzione ADDTIME() se si desidera selezionare una nuova data e ora aggiungendo una data ora a un valore data/ora/ora.

Questa funzione accetta due argomenti. Il primo argomento è la data/ora a cui stiamo aggiungendo l'ora; questa può essere un'espressione che restituisce un valore di ora/data/ora/data/ora o il nome di una colonna ora/data/ora/data/ora. Nel nostro esempio, utilizziamo arrival_datetime colonna, che è della datetime tipo di dati.

Il secondo argomento è una stringa contenente la quantità di tempo da aggiungere al primo argomento (nel nostro esempio, '2:10', o 2 ore e 10 minuti).

Puoi anche aggiungere frazioni di secondi e persino giorni a un valore data/ora. La query seguente aggiunge 3 giorni, 1 ora, 1 minuto, 1 secondo e 111 secondi frazionari a una data e un'ora:

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

Restituisce:

2019-02-08 11:13:12.111000

ADDTIME() restituisce una stringa con la nuova ora. Nel nostro esempio, il nuovo orario di arrivo per il volo 'EK10' è "2019-04-20 17:25:00" - due ore e dieci minuti dopo la data e l'ora originale di

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