Вопрос по mysql – НАГРУЗКА ДАННЫХ INFILE легко конвертировать ГГГГММДД в ГГГГ-ММ-ДД?

9

Привет У меня есть INFILE, я хочу импортировать, но даты имеют форму:

<code>AADR,20120403,31.43,31.43,31.4,31.4,1100
AAU,20120403,2.64,2.65,2.56,2.65,85700
AAVX,20120403,162.49,162.49,154.24,156.65,2200
</code>

Есть ли какой-нибудь простой способ преобразовать даты в «2012-04-03»? без необходимости делать что-то вроде открытия сначала с помощью Perl-скрипта, конвертирования дат и последующей записи файла обратно?

ТИА !!

Вы проверяли это? Я не ожидал, что его нужно будет конвертировать, если целью является тип DATE (потребуется конвертировать для DATETIME / TIMESTAMP) symcbean
Из ссылки - STR_TO_DATE () возвращает значение DATETIME, если строка формата содержит части даты и времени, или значение DATE или TIME, если строка содержит только части даты или времени. Devart
Оператор LOAD DATA INFILE позволяет сделать это одной командой. Посмотрите на ответ Томбома. Devart
Попробуйте использовать функцию STR_TO_DATE. Devart
да, это сработало: SELECT STR_TO_DATE ("20130105", "% Y% m% d"); так что я предполагаю, что это будет означать импорт в таблицу как STR, а затем запуск STR_TO_DATE () в другую таблицу типа DATE? было бы хорошо, если бы я мог сделать STR_TO_DATE () в команде INFILE .. Don Wool

Ваш Ответ

1   ответ
22

нет необходимости в другой таблице. Для получения дополнительной информации см.руководство.

LOAD DATA INFILE 'file.txt'
INTO TABLE t1
FIELDS TERMINATED BY ',' 
(column1, @var1, column3, ...)
SET column2 = STR_TO_DATE(@var1,'%Y%m%d')
Error: User Rate Limit Exceeded Don Wool
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded Don Wool
Error: User Rate Limit Exceeded

Похожие вопросы