Функция MySQL ADD_DATE из столбца datetime

#mysql #datetime #sql-update

#mysql #datetime #sql-обновление

Вопрос:

У меня есть столбец dtinsert (со старыми значениями>> Тип DATETIME) и столбец dtexpired (без значений>> Тип ДАТЫ). Я хочу обновить столбец dtexpired из значения столбца dtins.

Это SQL-запрос для проверки инструкции. Запрос на обновление не существует:

 SELECT DATE_ADD(DATE_FORMAT(dtinsert ,'%Y-%m-%d'), INTERVAL 180 DAY)
FROM usertable
  

При выполнении инструкции значение в dataset указывается без добавления 180 дней.

Как это исправить?

Спасибо

Комментарии:

1. select запросы не изменяют таблицы, точка. вы не можете изменить таблицу без update запроса. все, что делает ваш select, — это изменение ИЗВЛЕЧЕННОГО значения из таблицы. это измененное значение нигде не сохраняется и уничтожается при завершении выполнения запроса / получении результатов.

2. Я знаю, что такое хорошее обновление. Мой выбор был примером.

Ответ №1:

Вам нужно в update таблицу

 UPDATE usertable 
SET dtexpired = DATE_ADD(dtinsert, INTERVAL 180 DAY)
  

Вам не понадобится DATE_FORMAT , поскольку она преобразует a datetime в строку, тем самым заставляя DATE_ADD его анализировать ее обратно.

В зависимости от вариантов использования, если вы не планируете обновлять dtinsert s, вы можете также добавить a WHERE dtexpired is NULL , чтобы избежать бесполезных обновлений.

Комментарии:

1. Спасибо, мне было доверено использовать date_format. Я стараюсь и работаю нормально.