update listweb_copy set expiredate = expiredate + interval 4 year
where expiredate is not null and expiredate < "2001-01-01"
Я хочу добавить 4 года к истечению срока действия. Как я могу его исправить?
Чтобы добавить любой интервал в MySQL, вы можете использовать DATE_ADD или его синоним ADDDATE. Проверьте ссылку на поддерживаемые интервалы.
Этот термин будет
DATE_ADD(expiredate, INTERVAL 4 YEAR)
MySQL также заявляет:
Арифметика даты также может быть выполнена с использованием INTERVAL вместе с оператором + или:
expiredate + interval 4 year
Это именно то, что у вас было. Не работает ли это?
Для справки, часть expiredate is not null
в вашем запросе является избыточной, поскольку для нее преуспеть в < test, он не может быть нулевым. Таким образом, весь запрос будет записан
update listweb_copy set expiredate = expiredate + interval 4 year
where expiredate < '2001-01-01'
или используя функции
update listweb_copy set expiredate = date_add(expiredate, interval 4 year)
where expiredate < '2001-01-01'