Issue with Loadfile mysql

I am trying to load a CSV file using loadfile on mariadb

Here is my loadfile

LOAD DATA INFILE '/usr/src/salary.TXT' INTO TABLE salary
    FIELDS TERMINATED BY ','
    LINES TERMINATED BY '\n'    
    (`EmpID`,@CHK_DATE,`CATEGORY`,`BASE`,`AMOUNT`)
    SET CHK_DATE=IF (@CHK_DATE='',null,STR_TO_DATE(@CHK_DATE, '%m-%d-%Y'));

This is how my salary.TXT file looks

EMP99 ,02-20-2016,Direct Deposit           ,             ,    721.77
EMP99  ,02-20-2016,Union Dues               ,      1092.06,     43.68
EMP99  ,02-20-2016,Labor Mgmt Coop Comm Fund,        39.50,      1.98
EMP99  ,02-27-2016,Direct Deposit           ,             ,    568.91

It is loading but all CHK_DATE is coming as 0000-00-00

Не уверен, где я скучаю.

Заранее спасибо.

1 ответ

Что касается MySQL, это недопустимая дата, обычно вам нужно использовать ISO YYYY-MM-DD Формат, чтобы избежать двусмысленности. Вам может понадобиться загрузить это во временную таблицу, а затем преобразовать в окончательную схему, используя STR_TO_DATE() на пострадавшем столбце:

INSERT INTO salary
  SELECT ..., STR_TO_DATE(source_date, '%m-%d-%Y'), ...
    FROM salary_import
Другие вопросы по тегам