10

我有一些数据保存为 txt 文件。我将 txt 文件保存为 csv,以便使用我的 sql 工作台将其导入数据库。我正在做的是以下内容:

LOAD DATA LOCAL INFILE '/path/to/csv/file.csv' INTO TABLE mytable FIELDS TERMINATED BY ',' ENCLOSED BY '"' lines terminated by '\n';

但是我的专栏之一是日期,它被导入为 0000-00-00

如何以一种好的方式导入它? 编辑 这是我的 csv 包含的内容:

id  task    hoursWorked begindate   enddate                         
0   task1   15  11/17/2012          11/18/2012                          
1   task2   20  11/18/2012          11/20/2012                          
2   task3   20  12/4/2012           12/5/2013                           
3   task4   22  1/5/2013            1/7/2013
4

3 回答 3

13

请试试这个:

LOAD DATA LOCAL INFILE '/path/to/csv/file.csv' 
INTO TABLE mytable 
LINES TERMINATED BY '\n'
(id, task, hoursWorked, @var1, @var2) 
SET begindate = STR_TO_DATE(@var1, '%m/%d/%Y'),     
enddate = STR_TO_DATE(@var2, '%m/%d/%Y');

有关详细信息,请参阅加载数据STR_TO_DATE

注意:我删除了该FIELDS TERMINATED BY ',' ENCLOSED BY '"'部分,因为我既看不到,也看不到"您的 CSV。但是,如果它对您来说效果很好,请随时恢复:)

于 2013-01-28T10:32:01.470 回答
6
于 2013-01-28T10:48:12.387 回答
1

如果它不起作用,只需在 CVS 中添加年、月和日的列,并将日期的日、月和年分开,然后使用以下内容:

set date_column = concat(@year , '-' , @month , '-' , @day)

于 2020-08-07T06:31:54.947 回答