изменение полей даты с неправильным годом с помощью sql в phpMyAdmin - PullRequest
1 голос
/ 01 февраля 2012

У меня есть живая БД, в которой есть некоторые даты 2011 года, которые были введены как только мм / дд, и они по умолчанию установлены на даты 2012 года.(например, 2011-03-16 было введено как 03-16 и сохранено как 2012-03-16)

В результате в базе данных есть некоторые даты транзакций в будущем.Я исправил код для исправления ввода, но мне нужно исправить неправильные даты в БД.

Я могу вручную отредактировать их с помощью phpMyAdmin, но это займет часы.

Идеальное решениебудет SQL для исправления этих дат в окне SQL в phpMyAdmin.

Выбор будет:

SELECT created FROM posts WHERE created>'2012-02-01'

, а затем вычтите 1 год из каждого результата и сохраните его.

Чтобы сформулировать это иначе, мне нужно взять каждое поле created и, если это будущая дата, вычесть 1 год, чтобы сделать его датой 2011 года, а затем сохранить его.

Ответы [ 3 ]

1 голос
/ 01 февраля 2012
UPDATE posts SET created = DATE_ADD(created, INTERVAL -1 YEAR) 
WHERE created > CURDATE()
1 голос
/ 01 февраля 2012

Должно быть довольно просто, используя функцию DATE_ADD ().

update posts set created = DATE_ADD(created, INTERVAL -1 YEAR) where created > '2012-02-01'

источник: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_date-add

edit: упс, обновлен синтаксис.

0 голосов
/ 01 февраля 2012
UPDATE testdate
SET DATUM = DATE_ADD(datum, INTERVAL -1 YEAR) 
WHERE DATUM > NOW();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...