Импорт CSV в MySQL с другим форматом даты - PullRequest
16 голосов
/ 17 ноября 2011

Я делаю свой первый импорт CSV в MySQL и заметил, что дата в CSV имеет формат 31-Jan-2011. Как я могу преобразовать это в 2011-01-31, чтобы я мог поместить его в тип данных DATE? Первое, что пришло на ум - позволить PHP выполнить преобразование, а затем вставить его во 2-ю таблицу, но я предполагаю, что это ... не правильно.

Ответы [ 3 ]

41 голосов
/ 17 ноября 2011

Вы можете заменить формат при импорте данных из файла 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.

Больше информации здесь - ЗАГРУЗКА ИНФИЛЬНЫХ ДАННЫХ Синтаксис .

1 голос
/ 17 ноября 2011
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)
0 голосов
/ 20 декабря 2015

Если файл не слишком большой, загрузите CSV в Excel и используйте там команды форматирования, чтобы изменить представление даты.

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