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

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

Допустим, я хочу редактировать только дату с 2011-01-28

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

Спасибо!

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

7 ответов

Решение

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

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

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

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

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

(вы можете использовать МЕСЯЦ, ГОД и т. д.)

Возможно, DATE_ADD - хорошая идея. текст ссылки

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

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

Вы можете добавить различные компоненты даты, чтобы изменить ее, используя функцию Date_Add. Проверь это:

http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html

Собираюсь использовать что-то вроде:

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

Просто используйте:

      UPDATE table_name set column_name= DATE_FORMAT(column_name,'%Y-%m-28 %H:%i-%s');
Другие вопросы по тегам