MySQL DATETIME - изменение только даты

Начиная с: 2011-01-17 09:30:00

Скажем, я хочу изменить только дату с 2011-01-28

Каков наиболее эффективный способ: 2011-01-28 09:30:00

Спасибо!

Для всех, кто говорит Date_Add..., что потребует от меня вычесть даты, а затем добавить дни. Это возможность... но он хотел удалить этот первый шаг и просто "заменить" дату

Ответы

Ответ 1

Если вы действительно не хотите использовать функцию date_add, вы можете использовать эту конструкцию:

UPDATE table_name SET field_name = concat('2011-01-12 ', time(field_name)) 

Обязательно добавьте пробел после даты ('2011-01-12 ').

Ответ 2

Чтобы изменить его на 5 дней вперед:

UPDATE yourTableName
SET myDate1 = myDate1 + INTERVAL 5 DAY
WHERE myDate1 = dateIWantToChange

(вы также можете использовать MONTH, YEAR и т.д.)

Ответ 5

Пользуясь чем-то вроде:

CONCAT('2011-01-28 ',DATE_FORMAT(original_timestamp, '%H:%i:%s'))

Ответ 6

Проверить запрос

 update yourtable set eventtime=replace(eventtime,substr(eventtime,1,10), '2013-07-17')  WHERE  `id`=4