Как преобразовать формат даты CSV в MySQL DB - PullRequest
3 голосов
/ 11 апреля 2011

В CSV-файле поле даты имеет следующий формат:

2/9/2010 7:32
3/31/2011 21:20

Я использую php + mysql для разработки.

Мне нужно прочитать это и сохранить в mysql db.

Конечное значение для хранения в MySQL должно иметь следующий формат:

2010-02-09 07:32:00

Какой правильный путь?

Может ли один синтаксис mysql легко обрабатывать преобразование?

Ответы [ 3 ]

6 голосов
/ 11 апреля 2011

Используйте функцию STR_TO_DATE().

Пример

STR_TO_DATE('3/31/2011 21:20', '%c/%e/%Y %H:%i');
3 голосов
/ 04 июля 2013

Я сталкиваюсь с той же проблемой, и после небольшого исследования я так решил ее -

LOAD DATA LOCAL INFILE 'D:/dataupload.csv' INTO TABLE table1 FIELDS TERMINATED BY ',' ENCLOSED BY '' LINES TERMINATED BY '\r\n' (@d1,col2,col3,col4) SET col1 = date_format(str_to_date(@d1, **'%m/%d/%Y'**), **'%Y-%m-%d'**)

подробности:

  1. '% m /% d /% Y' - это формат даты в моем CSV-файле
  2. '% Y-% m-% d' - это формат mysql, в который я хочу преобразовать дату поля CSV при вставке данных
  3. col1 - фактический столбец моей таблицы (с типом данных date)
  4. @ d1 - это фиктивная переменная для использования в операторе set, вы можете взять любую переменную
0 голосов
/ 30 мая 2012

У меня была такая же проблема (с DATE) и другое решение, это использовать собственный формат mysql YYYYMMDD, то есть 20120209. Я не пробовал с DATETIME, но, думаю, YYYYMMDDhhmmss сработает.

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