2013-03-28 3 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 부분에 구문을 제외하고 붙어있어. 오류 :

ERROR 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') 
관련 문제