Problem:
Chcesz dodać określoną ilość czasu do wartości daty i godziny w bazie danych MySQL.
Przykład:
Nasza baza danych zawiera tabelę o nazwie flight_schedule z danymi w kolumnach flight , aircraft i arrival_datetime .
| lot | samolot | arrival_datetime |
|---|---|---|
| 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 |
Dla każdego lotu uzyskajmy kod lotu, kod samolotu oraz nową datę i godzinę przylotu. Aby obliczyć new_arrival_datetime , dodamy 2 godziny i 10 minut do aktualnego czasu dla każdego przylotu – tyle opóźniły się te loty.
Rozwiązanie:
Użyjemy ADDTIME() funkcjonować. Oto zapytanie, które możesz napisać:
SELECT flight,
aircraft,
ADDTIME(arrival_datetime, ‘2:10’)
AS new_arrival_datetime
FROM flight_schedule;
Oto wynik zapytania:
| lot | samolot | 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 |
Dyskusja:
Użyj funkcji ADDTIME(), jeśli chcesz wybrać nową datę/godzinę przez dodanie podanej godziny do wartości daty/daty/czasu/czasu.
Ta funkcja przyjmuje dwa argumenty. Pierwszym argumentem jest data/godzina, do której dodajemy czas; może to być wyrażenie zwracające wartość czasu/daty/godziny/znacznika czasu lub nazwę kolumny czasu/daty/godziny/znacznika czasu. W naszym przykładzie używamy arrival_datetime kolumna, która zawiera data i godzina typ danych.
Drugi argument jest ciągiem zawierającym ilość czasu do dodania do pierwszego argumentu (w naszym przykładzie „2:10” lub 2 godziny i 10 minut).
Możesz także dodać ułamki sekund, a nawet dni do wartości daty/godziny. Poniższe zapytanie dodaje 3 dni, 1 godzinę, 1 minutę, 1 sekundę i 111 ułamków sekund do daty i godziny:
SELECT ADDTIME('2019-02-05 10:12:11', '3 1:1:1.111');
Zwraca:
2019-02-08 11:13:12.111000
ADDTIME() zwraca ciąg z nowym czasem. W naszym przykładzie nowy czas przylotu lotu „EK10” to ‘2019-04-20 17:25:00’ – dwie godziny i dziesięć minut po pierwotnej dacie
‘2019-04-20 15:15:00’.