Я делаю свой первый импорт CSV в MySQL и замечаю, что дата в CSV имеет формат 31-Jan-2011
. Как я могу преобразовать это в 2011-01-31
, чтобы я мог поместить его в Datatype DATE? Первое, что пришло в голову, это позволить PHP сделать преобразование, а затем вставить его во вторую таблицу, но я предполагаю, что это... не правильно.
Импорт CSV в MySQL с другим форматом даты
Ответ 1
Вы можете заменить формат во время импорта данных из файла CSV, например -
LOAD DATA INFILE 'file_name.csv'
INTO TABLE table_name
FIELDS TERMINATED BY ';'
LINES TERMINATED BY '\n'
(id, column2, column3, @date_time_variable) -- read one of the field to variable
SET date_time_column = STR_TO_DATE(@date_time_variable, '%d-%b-%Y'); -- format this date-time variable
Он будет форматировать строку типа '31 -Jan-2011 'для правильного типа данных DATETIME.
Подробнее здесь - Синтаксис LOAD DATA INFILE.
Ответ 2
mysql> SELECT DATE_FORMAT('2009-10-04 22:23:00', '%Y-%m-%d');
+------------------------------------------------+
| DATE_FORMAT('2009-10-04 22:23:00', '%Y-%m-%d') |
+------------------------------------------------+
| 2009-10-04 |
+------------------------------------------------+
1 row in set (0.00 sec)
Ответ 3
Если файл не слишком большой, загрузите CSV в Excel и используйте команды форматирования, чтобы изменить представление даты.