2013-03-28 140 views
0

我正在将数据从csv导入到MySQL表。我需要将日期格式从String转换为Date。 从开始格式压轴格式:MySQL导入CSV转换日期格式

Mon Feb 04 00:00:00 UTC 2011 ---> 2011-02-04 00:00:00 

我已经成功地做到了:

select str_to_date('Mon Feb 04 00:00:00 UTC 2011', '%a %b %d %k:%i:%s UTC %Y'); 

现在我正在写剧本,从csv做所有的进口中,有2列用要转换的日期,但我在set零件上遇到MySQL语法异常。

SQL脚本:

load data local infile 'movimento.csv' into table movimento 
fields terminated by ',' lines terminated by '\n' 
(id, anno, creditore, @data_pag, @data_spost, descrizione) 
set data_pagamento = str_to_date(@data_pag, '%a %b %d %k:%i:%s UTC %Y') 
set data_spostamento = str_to_date(@data_spost, '%a %b %d %k:%i:%s UTC %Y') 
show warnings; 

我卡上的set部分的语法异常。错误:

错误1064(42000):您的SQL语法有错误;查看与您的MySQL服务器版本相对应的手册,以便在'set data_spostamento = str_to_date(@data_spost,'%a%b%d%k:%i:%s UTC%Y')附近使用正确的语法。 show'at line 5 >

什么是正确的语法?

回答

2

语法不正确。试试这个 -

LOAD DATA LOCAL INFILE 'movimento.csv' INTO TABLE movimento 
FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' 
(ID, anno, creditore, @data_pag, @data_spost, descrizione) 
SET 
    data_pagamento = STR_TO_DATE(@data_pag, '%a %b %d %k:%i:%s UTC %Y'), 
    data_spostamento = STR_TO_DATE(@data_spost, '%a %b %d %k:%i:%s UTC %Y')