2011-02-10 8 views
1

테이블에 일괄로드하려는 큰 Csv 파일이 있습니다. 이 CSV 파일의 열은 날짜를 DD-MM-YYYY 형식으로 유지합니다. MySQL DATE 형식은 YYYY-MM-DD 만 받아들이므로이 파일을 테이블에로드 할 때이 파일을 받아들이지 않습니다. MySQL에서 이것을 변경할 수있는 방법이 있습니까? 파이썬을 사용하여 테이블을 만들고 테이블에 파일을로드합니다.이 문제는 실제로는 문제가되지 않습니다.이 명령을 사용하면 정확하게 입력해야 할 위치를 알려주시겠습니까? 문자열을 날짜로 변환 할 STR_TO_DATE를 참조 - 감사 이 전체 코드MySql의 날짜 형식 변경

import MySQLdb,os 

path='data_files' 
absPath = os.path.abspath(path) 
print absPath 


#connecting to the new database 
conn = MySQLdb.connect(host='localhost', 
          user='root', 
          passwd='', 
          db='iens') 

db_cursor = conn.cursor() 

query = "LOAD DATA LOCAL INFILE '"+ absPath + "/recencies" +"' INTO TABLE iens.recensies FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\r\n' (restaurantID,Naam,Date,RecensieText) " 

db_cursor.execute(query) 

conn.commit() 
+2

"하고 싶다"는 의미는 무엇입니까? –

+0

이 데이터를 테이블에로드하고 날짜 형식에 문제가있는 코드를 표시하십시오. – eumiro

+0

http://www.thefreedictionary.com/wanna – Hossein

답변

4

이 테이블이 column1column2 두 개의 열을 임명했다 가정하면, 날짜가 column2에 그 CSV 파일의 두 번째 열입니다 :

LOAD DATA INFILE 'filename' (column1, @var1) 
SET column2 = STR_TO_DATE(@var1, '%d-%m-%Y') 

(column1, @var1) 부분은 말한다 :

  • CSV 파일의 첫 번째 열은 데이터베이스 열로 직접 이동합니다. column1
  • CSV 파일의 두 번째 열은 변수 @var1

SET column2 = 부분은 말한다 :

  • = 기호 다음 식 나오는대로에 데이터베이스 열 column2를 설정합니다.
+0

내 코드에서이 작업을 수행하는 방법을 보여줄 수 있습니까? 감사합니다. – Hossein

+0

몇 가지 설명을 추가했습니다.이 코드를 사용자의 코드에 적용하는 방법을 알아내는 데 도움이되기를 바랍니다. – Oswald