Я пытаюсь импортировать файл CSV в базу данных mysql.
Файл CSV содержит (помимо прочего) даты в следующем формате:
"2010-04-31 17:43:12"
Мой первый подходдолжен был использовать следующий скрипт .sql:
USE test;
LOAD DATA INFILE '/tmp/test.cvs'
replace INTO TABLE test_table
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
(...,mydate,...);
, который не работает, потому что двойные кавычки делают поле "2010-04-31 17:43:12" строкой.Итак, я понял, что могу преобразовать его в формат DATETIME, используя
select STR_TO_DATE("2010-04-31 17:43:12",'(%Y-%c-%e %H:%i:%S)') AS NewDateTime
. Этот запрос прекрасно работает сам по себе, но мне было интересно, есть ли способ преобразования строки на лету при импорте.Что-то из следующего:
...
LINES TERMINATED BY '\n'
(...,STR_TO_DATE(mydate,'(%Y-%c-%e %H:%i:%S)') AS NewDateTime,...);