Сначала вам нужно преобразовать строку даты в правильный формат времени даты (yyyy-mm-dd hh:mm:ss
).
С помощью функций STR_TO_DATE()
и DATE_FORMAT()
вы можете преобразовать эти строки даты в требуемый формат.
Теперь вы можете безопасно изменить/изменить тип данных на timestamp/datetime.
Вот демонстрация:
SQL FIDDLE DEMO
Преобразование строки даты в правильный формат даты:
Create table yourtable(
id INT primary key AUTO_INCREMENT,
start varchar(50)
);
INSERT INTO yourtable(start) VALUES('1901-02-03T05:30:00.000Z');
UPDATE yourtable
SET start = DATE_FORMAT(STR_TO_DATE(start,'%Y-%m-%dT%H:%i:%s.000Z'),'%Y-%m-%d %H:%i:%s');
Изменения типа данные:
ALTER TABLE yourtable MODIFY COLUMN start datetime;
Не могли бы вы поделиться некоторыми из ваших реальных данных? Вам нужно вставить данные в столбец типа «varchar». Затем вам нужно обновить даты строк до допустимого формата даты. Только тогда изменение типа данных на 'date' сделало бы его успешным – 1000111
Я добавил изображение своих данных (csv-файл). Затем, как я могу обновить даты строк в допустимый формат даты с загруженными данными в БД? – SUN