写一个脚本,自动把txt文件导入mysql数据库,并进行日期格式化,且解决0000-00-00问题

写在开头:
其实,我已经很难用脑子记住什么了,所以写在这里,以免自己忘记。

下面这个是
in_xxx_MMClaims_GeneralInfo.sql的内容
这个脚本负责把一个数据文件导入数据库,并且实现
(1)日期格式从 m/dd/yyy 导入到 yyyy/mm/dd
(2)对于数据文件中为空的,经过步骤(1)被变成0000-00-00,要还原成null

执行方法
mysql -h localhost -upmis -p666666 < E:\test\in_xxx_MMClaims_GeneralInfo.sql

use xxx_2020
load data local infile “e:\test\MMClaims_GeneralInfo_20191126_1.txt”
into table mmclaims_generalinfo
fields terminated by’|’
enclosed by ‘"’
(Operation,Mining Claim Key,Claim Name,Mining Claim ID,List of Owners,
Claim Status,Claim Status as Reported,Agency Claim ID,Claim Type,Claim Type as Reported,Commodities,
@Application Date,@Date Granted,@Expiry Date,@Source As Of Date,
Source,Claim Area,Country Name,SNL Global Region)

set
Application Date=str_to_date(@Application Date,’%m/%d/%Y’),
Date Granted=str_to_date(@Date Granted,’%m/%d/%Y’),
Expiry Date=str_to_date(@Expiry Date,’%m/%d/%Y’),
Source As Of Date=str_to_date(@Source As Of Date,’%m/%d/%Y’);

update mmclaims_generalinfo
SET
Application Date = NULL where CAST(Application Date AS CHAR(20)) = ‘0000-00-00’;
update mmclaims_generalinfo
SET
Date Granted = NULL where CAST(Date Granted AS CHAR(20)) = ‘0000-00-00’;
update mmclaims_generalinfo
SET
Expiry Date = NULL where CAST(Expiry Date AS CHAR(20)) = ‘0000-00-00’;
update mmclaims_generalinfo
SET
Source As Of Date = NULL where CAST(Source As Of Date AS CHAR(20)) = ‘0000-00-00’;

注意:csdn的显示略去了一些符号,你看到所有的红颜色的词组都是由~键下面的那个单引号括住的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

欧色

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值