2011-11-17 5 views
11

저는 처음으로 CSV를 MySQL로 가져오고 CSV의 날짜 형식이 31-Jan-2011임을 알았습니다. 이 데이터를 2011-01-31으로 변환하면 DATE 데이터 유형에 배치 할 수 있습니까? 마음에 들었던 첫 번째 일은 PHP가 변환을 수행 한 다음 두 번째 테이블에 삽입하는 것입니다.하지만 그건 맞지 않습니다.다른 날짜 형식의 MySQL에 CSV 가져 오기

+0

이미 누군가가 다음 질문에 답변 한 것처럼 보입니다. http://stackoverflow.com/questions/5616494/how-to-convert-csv-date-format-to-into-mysql-db. 다른 사람이이 질문을하는 경우에 대비하여 게시하고 있습니다. – enchance

답변

31

당신은 예를 들어, CSV 파일에서 데이터를 가져 오는 동안 형식을 대체 할 수 -

LOAD DATA INFILE 'file_name.csv' 
INTO TABLE table_name 
FIELDS TERMINATED BY ';' 
LINES TERMINATED BY '\n' 
(id, column2, column3, @date_time_variable) -- read one of the field to variable 
SET date_time_column = STR_TO_DATE(@date_time_variable, '%d-%b-%Y'); -- format this date-time variable 

그것은 올바른 DATETIME 데이터 유형으로 '31 잰 2011 '와 같은 문자열을 포맷합니다.

여기에 더 자세한 정보 - LOAD DATA INFILE Syntax.

+0

[this] (http://dba.stackexchange.com/questions/90498/import-csv-file-into-mysql-with-custom-data-change?noredirect=1#comment162435_90498) 문제는 어떻습니까? 어떤 도움을 주시겠습니까? 감사합니다 –

0
mysql> SELECT DATE_FORMAT('2009-10-04 22:23:00', '%Y-%m-%d'); 
+------------------------------------------------+ 
| DATE_FORMAT('2009-10-04 22:23:00', '%Y-%m-%d') | 
+------------------------------------------------+ 
| 2009-10-04          | 
+------------------------------------------------+ 
1 row in set (0.00 sec) 
0

파일이 너무 크지 않은 경우 CSV를 Excel에로드하고 거기에 서식 지정 명령을 사용하여 날짜 표현을 변경하십시오.

+0

귀하의 대답은 SQL 질문에 도움이되지 않습니다. 또한 Excel은 배치 프로세스에 포함하기가 쉽지 않습니다. –

+0

이것은 저에게 효과적이었습니다. 단순히 열의 Excel에서 날짜 형식을 "yyyy-mm-dd"로 변경하여 csv로 저장하고 가져 왔습니다. –