2016-12-08 3 views
1

Я хочу загрузить файл csv, который содержит данные yyyy-mm-ddThh:mm:ss.sssZ.MySQL yyyy-mm-ddThh: mm: ss.sssZ to yyyy-mm-dd hh: mm: ss

Когда я установил DATETIME типа в MySQL,

Я получил код ошибки 1292.

MySQL Как я могу загрузить yyyy-mm-ddThh:mm:ss.sssZ типа успешно?

enter image description here

+0

Не могли бы вы поделиться некоторыми из ваших реальных данных? Вам нужно вставить данные в столбец типа «varchar». Затем вам нужно обновить даты строк до допустимого формата даты. Только тогда изменение типа данных на 'date' сделало бы его успешным – 1000111

+0

Я добавил изображение своих данных (csv-файл). Затем, как я могу обновить даты строк в допустимый формат даты с загруженными данными в БД? – SUN

ответ

0

Сначала вам нужно преобразовать строку даты в правильный формат времени даты (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; 
+0

Я ценю за вашу помощь! – SUN

+0

Вы можете отметить ответ как принятый, чтобы другие находили его полезным. http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work – 1000111

Смежные вопросы