2016-03-05 48 views
0

我想從一個csv文件導入數據到MySQL使用LOAD DATA LOCAL INFILE。除時間戳作爲其數據類型的日期列以外的所有列都可以正確導入。我得到錯誤1265:數據被截斷日期列,它插入所有值的值爲00:00:00。這已被問過,但我沒有找到一個完美的解決方案。我也嘗試過針對這類問題發佈的各種解決方案,但沒有一個適合我。日期列(datatype -timestamp)沒有從csv正確導入到MySql

表創建語句:

CREATE TABLE MySchema.response 
(
`id` int, 
`version` int, 
`name` varchar(500), 
`date_created` timestamp, 
`last_updated` timestamp, 
`count` int, 
); 

將數據加載到表:

LOAD DATA LOCAL INFILE 'C:/response.csv' 
INTO TABLE MySchema.response 
FIELDS TERMINATED BY ',' optionally ENCLOSED by '"' 
ignore 1 lines 

在CSV樣品數據文件

ID版本名稱DATE_CREATED LAST_UPDATED數
1,0,xyz,5/3/2013 1:18,2013/5/3 2013/18,2
2,0,abc,5/3/2013 1:18,2013/5/3 1 :18,1

回答

0

樣本中的日期列不是MySQL的默認格式,因此不會被識別爲日期。你需要嘗試像下面,爲了陳述的日期應如何解釋:一個符合你的情況下(可能是我加的樣品在上面的那些)符

LOAD DATA LOCAL INFILE 'C:/response.csv' 
INTO TABLE MySchema.response 
FIELDS TERMINATED BY ',' optionally ENCLOSED by '"' 
IGNORE 1 lines 
(id, version, name, @date_created, @last_updated, count) 
SET date_created = STR_TO_DATE(@date_created, '%d/%c/%Y %k:%i'), 
last_updated = STR_TO_DATE(@last_updated, '%d/%c/%Y %k:%i'); 

檢查MySQL的date format documentation

+1

只有改變我不得不改變月份和日期的地方。在我的csv文件中,格式是mm-dd-YYYY。神奇的解決方案,並感謝您的日期格式文件 –