Как преобразовать формат даты 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'**)
Подробности:
- "%m/%d/%Y" - это формат даты в моем файле CSV
- "%Y-%m-%d" - это формат mysql, в который я хочу преобразовать дату поля CSV при вставке данных
- col1 - фактический столбец моей таблицы (с типом данных date)
- @ d1 - фиктивная переменная для использования в операторе set, вы можете взять любую переменную
У меня была такая же проблема (с DATE
) и другое решение, это использовать нативный формат mysql YYYYMMDD
т.е. 20120209
, Я не пробовал с DATETIME
но я думаю YYYYMMDDhhmmss
буду работать.