我正在尝试将数据加载到MySQL表中,并且所有时间戳(日期时间字段类型)都被加载为null。我尝试加载的示例值是"2002-04-26 19:31:15.200000000"
,我已将格式指定为'%Y-%c-%d %H:%i:%s.%f'
(下面的语句)。
由于null正在加载,我假设我的格式不正确,导致加载null。我应该指定的正确格式是什么?
set DateAdded = STR_TO_DATE(@DateAdded,'%Y-%c-%d %H:%i:%s.%f')
完整的LOAD INFILE
声明:
LOAD DATA INFILE 'CANDIDATES.txt' INTO TABLE dbo.CANDIDATE
FIELDS TERMINATED BY '|'
ignore 1 lines
(ResumeKey,Address1,Address2,City,Candidate_Type,Candidate_Type_Changed_UserID,State,Country,@DateAdded,@DateModified,Degree,Email,FirstName,GPA,GradYear,HomePhone,JobTitle,LastName,Locale,Major,MiddleName,OrgName,OtherPhone,SchoolName,Zip,Active_Flag,SecureCandidate_Flag,CandidateStackingField,CellPhone,Homepage,FaxNumber,BRUID)
set
DateAdded = STR_TO_DATE(@DateAdded,'%Y-%c-%d %H:%i:%s.%f'),
DateModified = STR_TO_DATE(@DateModified,'%Y-%c-%e %H:%i:%s.%f');
答案 0 :(得分:0)
问题是正在加载的文件不是utf-8格式。 MySQL无法加载uff-16文件。
要在linux上转换文件,你可以这样做:iconv -f utf-16le -t utf-8(uff-15le格式的文件)> (新的uff-8文件的名称)
如果您需要查找文件的当前编码,可以使用file -ib filename。
转换后加载的文件没有问题。