MySQl DATE Обновление формата Varchar на сегодняшний день в другом формате - PullRequest
1 голос
/ 19 ноября 2011

У меня есть несколько служебных записей. База данных уже создана и заполнена большим количеством данных. Я должен создать поисковую функцию на нем. Но проблема в том, что в базе данных есть поле даты, которое находится в форме var char и имеет вид "DD-MM-YYYY", например: "18-11-2011" Я хочу преобразовать столбец даты в формат даты без потери этих данных. Я попытался сделать это на тестовом столе, и все обернулось. например: 0000-00-00

Что можно сделать для того же?

1 Ответ

3 голосов
/ 19 ноября 2011

Чтобы расширить ответ flesk, добавьте новый столбец

ALTER TABLE foo ADD newdate DATE;

Обновите таблицу, чтобы заполнить этот новый столбец (как это сделал flesk)

UPDATE foo SET newdate=str_to_date(olddate, '%d-%m-%Y');

Тогда вы даже можете проверить,преобразование правильное.

SELECT * FROM foo WHERE olddate  <> DATE_FORMAT(newdate, '%d-%m-%Y');

Затем вы можете удалить старый столбец и переименовать новый.Или просто оставьте все как есть.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...