在从从MS Access表创建的CSV文件导入到MySQL表期间,它将csv中的所有日期字段转换为0000-00-00。对于导入,我使用以下Load数据命令。
LOAD DATA LOCAL INFILE 'C:\\..\\tableName.txt'
INTO TABLE tableName
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n';下面是试图导入CSV文件im的一个示例行。
1,1,5/30/1934 0:00:00,"H",“温哥华,B.C.”。
我尝试了"日期更改为0000-00-00“的解决方案,但没有奏效。
发布于 2015-07-16 21:08:04
您可以导入.csv文件并在以下之后进行替换:
new_date_column VARCHAR(10)。UPDATE和REPLACE。
UPDATE db1.table1SET new_date_column = STR_TO_DATE(REPLACE(new_date_column,'/','.'),GET_FORMAT(DATE,'EUR'));
new_date_column的数据类型。ALTER TABLE db1.table1 MODIFY new_date_column new_date_column DATE;
这将将您的new_date_column转换为XXXX-XX-XX日期格式。
发布于 2015-10-26 04:53:31
示例数据库表列名
database_column_1 database_column_2 database_date_column_name
示例CSV数据字段
fname lname hireDate
john smith 09/09/2015
LOAD DATA LOCAL INFILE 'C:\/Documents and Settings/Admin/My Documents/datafile.csv' INTO TABLE data_import
fields terminated by ','
lines terminated by '\r\n'
ignore 1 lines
(database_column_1, database_column_2, @temporary_date_variable)
SET database_date_column = STR_TO_DATE(@temporary_date_variable, '%m/%d/%Y')在上面的示例中,您导入本地csv数据文件并将每个数据列从CSV分配给匹配的数据库列,当您到达date列时,将它分配给一个临时变量(您为临时变量选择了任何名称,只需使用它前面的@符号),然后使用SET命令设置等于转换后的CSV值的数据库日期列。STR_TO_DATE函数将使用临时变量作为第一个参数,然后使用CSV作为第二个参数的格式。
https://dba.stackexchange.com/questions/107261
复制相似问题