Как преобразовать формат даты CSV в MySQL DB

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

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

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

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

Конечное значение для хранения в MySQL должно быть в формате, как показано ниже:

2010-02-09 07:32:00

Как правильно это сделать?

Является ли один синтаксис MySQL легко обрабатывать преобразования?

3 ответа

Решение

Использовать STR_TO_DATE() функция.

пример

STR_TO_DATE('3/31/2011 21:20', '%c/%e/%Y %H:%i');

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

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, вы можете взять любую переменную

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

Другие вопросы по тегам