mysql - Loadfile mysql 的问题

标签 mysql mariadb

我正在尝试使用 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 - Loadfile mysql 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40925523/

相关文章:

mysql - 查询时出现重复记录问题

mysql - Kohana ORM,重写 ORDER BY 和 GROUP BY 查询

mysql - 如何将多行合并为一行

php - 登录 mysql 时权限被拒绝,但能够从 cmd digitalocean 登录

mysql - 使用 IN BOOLEAN MODE 时找不到 FULLTEXT 索引

php mysql视频上传无法成功运行

mysql - 从 angularjs 中的表中删除一行

mysql - MariaDB SELECT 仅针对 30 天内过期的帐户的所有记录

MySQL根据偏好匹配两个用户

MySQL 存储过程循环遍历 2 个表,选择值并存储在第 3 个表中