sql >> Databáze >  >> RDS >> Mysql

Jak přidat čas k hodnotě Datetime v MySQL

Problém:

K hodnotě datetime v databázi MySQL byste chtěli přidat určitý čas.

Příklad:

Naše databáze obsahuje tabulku s názvem flight_schedule s údaji ve sloupcích flight , aircraft a arrival_datetime .

let letadlo arrival_datetime
EK10 L1201 20.04.2019 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

Pro každý let získáme kód letu, kód letadla a nové datum a čas příletu. Pro výpočet new_arrival_datetime , přidáme 2 hodiny a 10 minut k aktuálnímu času každého příletu – o tolik byly tyto lety zpožděny.

Řešení:

Použijeme ADDTIME() funkce. Zde je dotaz, který byste napsali:

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

Zde je výsledek dotazu:

let letadlo new_arrival_datetime
EK10 L1201 20.04.2019 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

Diskuse:

Funkci ADDTIME() použijte, pokud chcete vybrat nové datum a čas přidáním daného času k hodnotě datetime/timestamp/time.

Tato funkce má dva argumenty. První argument je datum/čas, ke kterému přidáváme čas; může to být výraz, který vrací hodnotu čas/datum/čas/časové razítko nebo název sloupce čas/datumčas/časové razítko. V našem příkladu používáme arrival_datetime sloupec, který má datum a čas datový typ.

Druhý argument je řetězec obsahující čas, který se má přidat k prvnímu argumentu (v našem příkladu „2:10“ neboli 2 hodiny a 10 minut).

K hodnotě data a času můžete také přidat zlomky sekund a sudé dny. Dotaz níže přidá k datu a času 3 dny, 1 hodinu, 1 minutu, 1 sekundu a 111 zlomkových sekund:

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

Vrací:

2019-02-08 11:13:12.111000

ADDTIME() vrátí řetězec s novým časem. V našem příkladu nový čas příletu pro let ‚EK10‘ je ‘2019-04-20 17:25:00’ – dvě hodiny a deset minut po původním datu

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

  1. Zkoumání chyby ORA 02063 DG4ODBC

  2. Pořízení záznamu s maximálním datem

  3. Co je @@TEXTSIZE na serveru SQL?

  4. Datetime stejný nebo větší než dnes v MySQL