首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将CSV导入MySQL(5.6)表时,日期字段为0000-00-00

问将CSV导入MySQL(5.6)表时,日期字段为0000-00-00
EN

Database Administration用户
提问于 2015-07-16 20:23:05
回答 2查看 7K关注 0票数 2

在从从MS Access表创建的CSV文件导入到MySQL表期间,它将csv中的所有日期字段转换为0000-00-00。对于导入,我使用以下Load数据命令。

代码语言:javascript
复制
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“的解决方案,但没有奏效。

EN

回答 2

Database Administration用户

回答已采纳

发布于 2015-07-16 21:08:04

您可以导入.csv文件并在以下之后进行替换:

  • 使您的日期列new_date_column VARCHAR(10)。
  • 导入文件。
  • UPDATE和REPLACE。

UPDATE db1.table1 SET 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日期格式。

票数 1
EN

Database Administration用户

发布于 2015-10-26 04:53:31

示例数据库表列名

database_column_1 database_column_2 database_date_column_name

示例CSV数据字段

代码语言:javascript
复制
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作为第二个参数的格式。

票数 2
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/107261

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档