Проблем:
Искате да добавите определено време към стойност за дата и час в база данни на MySQL.
Пример:
Нашата база данни има таблица с име flight_schedule
с данни в колоните flight
, aircraft
и 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 |
За всеки полет нека получим кода на полета, кода на самолета и нова дата и час на пристигане. За да изчислите new_arrival_datetime
, ще добавим 2 часа и 10 минути към текущото време за всяко пристигане – толкова са забавени тези полети.
Решение:
Ще използваме ADDTIME()
функция. Ето заявката, която бихте написали:
SELECT flight, aircraft, ADDTIME(arrival_datetime, ‘2:10’) AS new_arrival_datetime FROM flight_schedule;
Ето резултата от заявката:
полет | самолет | 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 |
Дискусия:
Използвайте функцията ADDTIME(), ако искате да изберете нова дата и час, като добавите дадено време към стойност за дата/време/време.
Тази функция приема два аргумента. Първият аргумент е датата/часа, към който добавяме време; това може да бъде израз, който връща стойност за време/дата/време или името на колона за време/дата и час. В нашия пример използваме arrival_datetime
колона, която е с дата и час тип данни.
Вторият аргумент е низ, съдържащ количеството време за добавяне към първия аргумент (в нашия пример „2:10“ или 2 часа и 10 минути).
Можете също да добавите частични секунди и дори дни към стойност за дата и час. Заявката по-долу добавя 3 дни, 1 час, 1 минута, 1 секунда и 111 дробни секунди към дата и час:
SELECT ADDTIME('2019-02-05 10:12:11', '3 1:1:1.111');
Връща:
2019-02-08 11:13:12.111000
ADDTIME() връща низ с новото време. В нашия пример, новото време на пристигане за полет „EK10“ е „2019-04-20 17:25:00“ – два часа и десет минути след първоначалната си дата и час
‘2019-04-20 15:15:00’.