我正在尝试使用mariadb上的loadfile加载CSV文件
这是我的加载文件
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'));
这是我的薪金.TXT文件的外观
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
正在加载,但所有
CHK_DATE
都将作为0000-00-00
不知道我在哪里失踪。
提前致谢。
最佳答案
就MySQL而言,这不是一个有效的日期,通常您需要使用ISO YYYY-MM-DD
格式以避免产生歧义。您可能需要将其加载到临时表中,然后使用受影响列上的STR_TO_DATE()
将其转换为最终模式:
INSERT INTO salary
SELECT ..., STR_TO_DATE(source_date, '%m-%d-%Y'), ...
FROM salary_import
关于mysql - 加载文件mysql问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40925523/