我希望能够将csv文件中的日期重新格式化为mysql所需的yyyy-mm-dd格式。我得到的文件格式为“ 10/22/1988”。这是到目前为止我正在使用的代码。
**load data infile 'C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/Driver.csv'
into table Driver
fields terminated by ','
lines terminated by '\r\n'
ignore 1 rows
(DriverID,DriverFirst,DriverLast,SSN,@DOB,@StartDate,@EndDate,Address,City,State,Zip,Phone,Cell,Mileage,@Review,DrivingRecord)
SET
DOB = DATE_FORMAT(@DOB, "%Y %M %D"),
StartDate = DATE_FORMAT(@DOB, "%Y %M %D"),
EndDate = nullif(DATE_FORMAT(@EndDate, "%Y %M %D"),''),
Review = nullif(DATE_FORMAT(@Review, "%Y %M %D"),'')
;**
这就是我建立表格的方式:
create table Driver
(
DriverID smallint not null auto_increment,
DriverFirst varchar(20) not null,
DriverLast varchar(20) not null,
SSN varchar(9) not null,
DOB date not null,
StartDate date not null,
EndDate date null,
Address varchar(30) not null,
City varchar(30) not null,
State varchar(2) not null,
Zip varchar(6) not null,
Phone varchar(10) not null,
Cell varchar(10) not null,
Mileage decimal(3,2) null,
Review date null,
DrivingRecord char(1) not null,
constraint pk_Drivers primary key clustered (DriverID asc)
);
如果单元格为空,MySQL会引发错误,因此我一直在使用nullif()函数。
请告知。
答案 0 :(得分:1)
您需要这个:
str_to_date(@whatever, '%c/%d/%Y')
您正在将某种随机格式转换为标准的“ DATE”格式,因此需要str_to_date。另外,请确保源格式与输入数据实际匹配,因此在这种情况下,您需要%c /%d /%Y。