2013-03-28 138 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')