首页 文章

将csv导入mysql时,日期字段值错误

提问于
浏览
0

我正在使用加载数据将csv文件导入mysql . 我的加载数据命令如下所述 .

load data local infile 'D:/mydata.csv' into table mydb.mydata 
fields terminated by ','
enclosed by '"'
lines terminated by '\r\n'
ignore 1 lines
(SrNo,SourceFrom,@var_updated,Title,First_Name,Middle_Name,Last_Name,Designation,Company_Name,@var_dob,Office_Mobile_No)  

set updated = str_to_date(@var_updated,'%Y-%m-%d'), dob = str_to_date(@var_dob, '%Y-%m-%d');

我在“更新”和“DOB”列中获得了不同的值 . 这些值在我的.csv文件中有所不同 .

enter image description here

enter image description here

第一张图片来自mysql工作台,而另一张图片来自csv .

另外,我在csv中坐了"office_mobile_no"列's format to '数字' . 但它显示的数字是这样的 .
enter image description here

当我双击它时,它只显示实际数字,如9875461234.它也在mysql中导入相同的数字 . 如何获取特定列中的原始编号?为什么我的导入日期值与csv的日期列不同?

1 回答

  • 1

    我能看到几点:

    • 从您的屏幕截图中可以看出,您的CSV文件中"updated"的数据是d-m-Y格式,但您告诉导入要查找Y-m-d . 我想你需要改变

    set updated = str_to_date(@var_updated,'%Y-%m-%d')

    set updated = str_to_date(@var_updated,'%d-%m-%Y')
    

    对于DOB字段也是如此,假设您的CSV具有相同格式的CSV .

    • 你说我在csv中坐了"office_mobile_no"列's format to '数字' . CSV是一种文本文件格式,它看不出Excel是如何决定默认显示大数字的 . 您可以更改它,但您的更改将包含此类信息 . 尝试在记事本中打开文件并查看文件的实际格式 .

相关问题