Mysql читать строку как datetime - PullRequest
0 голосов
/ 30 октября 2018

Здравствуйте, я использую LOAD DATA INFILE для заполнения таблицы в MySQL.

LOAD DATA INFILE 'test.txt'
INTO TABLE myTestTable
FIELDS TERMINATED BY '\t'
IGNORE 1 LINES;

Все работает отлично, за исключением того, что в моих данных есть столбец datetime, который отформатирован без разделителя между разделами даты и времени. Вот так:

SomeDateColumn
20050101081946

Когда я читаю это, MySQL заменяет все даты фиктивными значениями. Есть ли способ, чтобы MySQL считал это правильно прямо из файла?

Спасибо!

1 Ответ

0 голосов
/ 30 октября 2018

Вы можете позвонить STR_TO_DATE при запуске LOAD DATA и преобразовать текстовую дату в истинную дату на лету:

LOAD DATA INFILE 'test.txt'
INTO TABLE myTestTable
FIELDS TERMINATED BY '\t'
IGNORE 1 LINES
(
    col1, col2, @var1     -- list out all columns here
)

SET SomeDateColumn = STR_TO_DATE(@var1, '%Y%m%d%h%i%s');
...