将 csv 导入 mysql 时日期字段值错误
date field values are wrong while importing csv into mysql
我正在使用加载数据将 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');
我在 "Updated" 和 "DOB" 列中得到不同的值。这些值在我的 .csv 文件中不同。
第一张图片来自 mysql workbench 而另一张来自 csv.
此外,我在 csv 中将 "office_mobile_no" 列的格式设置为 'number'。但它的显示数量是这样的。
当我双击它时,它只显示像 9875461234 这样的真实数字。它在 mysql 中也导入相同的数字。如何在特定列中获取原始编号?还有为什么我导入的日期值与 csv 的日期列不同?
我能看到的几点:
- 从您的屏幕截图看来,"updated" 的 CSV 文件中的数据是 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 具有相同的格式。
- 你说我把"office_mobile_no"列的格式改成了csv里的'number'。CSV是文本文件格式,不存储任何信息如何显示数据。您所看到的正是 Excel 如何决定默认显示大量数字。您可以更改它,但是当您将其保存为 CSV 时,您的更改不会被保存,因为 CSV 文件格式不包含此类信息。尝试在 Notepad++ 中打开文件并查看文件的真实格式。
我正在使用加载数据将 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');
我在 "Updated" 和 "DOB" 列中得到不同的值。这些值在我的 .csv 文件中不同。
第一张图片来自 mysql workbench 而另一张来自 csv.
此外,我在 csv 中将 "office_mobile_no" 列的格式设置为 'number'。但它的显示数量是这样的。
当我双击它时,它只显示像 9875461234 这样的真实数字。它在 mysql 中也导入相同的数字。如何在特定列中获取原始编号?还有为什么我导入的日期值与 csv 的日期列不同?
我能看到的几点:
- 从您的屏幕截图看来,"updated" 的 CSV 文件中的数据是 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 具有相同的格式。
- 你说我把"office_mobile_no"列的格式改成了csv里的'number'。CSV是文本文件格式,不存储任何信息如何显示数据。您所看到的正是 Excel 如何决定默认显示大量数字。您可以更改它,但是当您将其保存为 CSV 时,您的更改不会被保存,因为 CSV 文件格式不包含此类信息。尝试在 Notepad++ 中打开文件并查看文件的真实格式。