Mysql добавляет 12 часов в поле времени

Мне нужно добавить 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 секунд.

спасибо

Ответ 1

Попробуйте использовать ADDTIME вместо DATE_ADD. Вы можете сделать SET start_time = ADDTIME(start_time, '12:00:00')

Ответ 2

UPDATE `events` 
SET start_time = start_time + INTERVAL 12 HOUR
WHERE `start_time` < '11:00:00'

Функции MySQL, принимающие аргументы INTERVAL, в основном не нужны; вы можете просто добавлять и вычитать интервалы с помощью + и -.

Ответ 3

set start_time = ADDTIME(start_time,'12:00:00')

DATE_ADD отлично работает с отметкой времени и т.д., но не с TIME

Ответ 4

если разработчик не хочет обновлять данные и хочет добавить часы или минуты к времени. Это можно сделать следующим образом:

Разработчик может использовать функцию 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`

Ответ 5

update my_table SET modified_date = ADDTIME(scheduled_date, '03:15:00') 

Это добавит 3 часа, 15 минут в измененную дату