Ответ 1
Попробуйте использовать ADDTIME вместо DATE_ADD. Вы можете сделать SET start_time = ADDTIME(start_time, '12:00:00')
Мне нужно добавить 12 часов в поле TIME mysql (не DATETIME), и у меня возникают проблемы.
UPDATE `events`
SET start_time = DATE_ADD(start_time, INTERVAL 12 HOUR)
WHERE `start_time` < '11:00:00'
возвращает без ошибок, но ничего не меняет, я думаю, потому что start_time - это поле TIME.
UPDATE `events`
SET start_time = start_time + '12:00:00'
WHERE `start_time` < '11:00:00'
добавляет 12 секунд.
спасибо
Попробуйте использовать ADDTIME вместо DATE_ADD. Вы можете сделать SET start_time = ADDTIME(start_time, '12:00:00')
UPDATE `events`
SET start_time = start_time + INTERVAL 12 HOUR
WHERE `start_time` < '11:00:00'
Функции MySQL, принимающие аргументы INTERVAL
, в основном не нужны; вы можете просто добавлять и вычитать интервалы с помощью +
и -
.
set start_time = ADDTIME(start_time,'12:00:00')
DATE_ADD отлично работает с отметкой времени и т.д., но не с TIME
если разработчик не хочет обновлять данные и хочет добавить часы или минуты к времени. Это можно сделать следующим образом:
Разработчик может использовать функцию AddTime() для добавить часы в столбцы времени в MySQL. Его можно использовать, как показано ниже:
AddTime(COLUMN,’01:00:00′) to add an hour in MySQL time column
AddTime(COLUMN,’00:01:00′) to add a minute in MySQL time column
Пример запроса sql:
select id,name,AddTime(login_time,'01:00:00') as login_time FROM `table`
update my_table SET modified_date = ADDTIME(scheduled_date, '03:15:00')
Это добавит 3 часа, 15 минут в измененную дату