복붙노트

[SQL] MySQL의의 LOAD DATA LOCAL INFILE을 사용하여 CSV의 수입시에 MySQL의 날짜 형식 문자열로 날짜를 변경하는 방법

SQL

MySQL의의 LOAD DATA LOCAL INFILE을 사용하여 CSV의 수입시에 MySQL의 날짜 형식 문자열로 날짜를 변경하는 방법

나는 기존 데이터베이스 테이블에 CSV 파일에서 데이터를로드 할 DATA LOCAL INFILE SQL 문 MySQL의의 LOAD를 사용하고 있습니다.

다음 예제 SQL 문은 다음과 같습니다

LOAD DATA LOCAL INFILE 'file.csv' INTO TABLE my_table
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
(name, address, dateOfBirth)

생년월일 (DateOfBirth) 필드에 매핑되는 CSV의 세 번째 열은 현재 다음과 같은 형식의 날짜가 :

14-Feb-10

어떻게 MySQL의 날짜 형식 즉 2010-02-14에 날짜를 포맷하는 위의 SQL 문을 수정할 수 있습니다?

내가 사용하는 일반 INSERT 구문을 사용하는 경우 문자열 날짜를 변환하는 방법을 알고있다 :

STR_TO_DATE ('14 -2 월-10 ','% D- % B- % Y ')

해결법

  1. ==============================

    1.당신은 그 열에서 행의 내용을 참조하는 변수와 함께 SET 절을 사용해야합니다. 당신의 열 목록에서 변수 이름에 날짜 열을 지정합니다. 그런 다음 SET 문에 사용할 수 있습니다. (참고, 나는에 이것을 테스트하기 위해 내 앞에 MySQL이 없어요.)

    당신은 그 열에서 행의 내용을 참조하는 변수와 함께 SET 절을 사용해야합니다. 당신의 열 목록에서 변수 이름에 날짜 열을 지정합니다. 그런 다음 SET 문에 사용할 수 있습니다. (참고, 나는에 이것을 테스트하기 위해 내 앞에 MySQL이 없어요.)

    LOAD DATA LOCAL INFILE 'file.csv' INTO TABLE my_table
    FIELDS TERMINATED BY ','
    ENCLOSED BY '"'
    LINES TERMINATED BY '\n'
    (name, address, @var1)
    set dateOfBirth = STR_TO_DATE(@var1, '%d-%b-%y')
    

    이 페이지는 주요 문서에 다를 것으로 보인다 확실하지 왜 (http://mysql2.mirrors-r-us.net/doc/refman/5.1/en/load-data.html :에 페이지 아래 예제를하는 방법을 참조하십시오 것을 실제로 SET 사용의 예를 들어 있습니다.)

  2. ==============================

    2.당신에게 테스트 유연성의 비트를 제공하는 약간 더 긴 과정 :

    당신에게 테스트 유연성의 비트를 제공하는 약간 더 긴 과정 :

    이 기술의 장점은 당신이 특히 길이 테이블 컬럼과, 다소 까다로운 MySQL의 LOAD 데이터 구문을 사용하여 다시 가져올 수있는 테이블을하지 않고 형식 함께 놀러 할 수있다. 당신이하고있는 정확히 알고 있다면, 대답은 위의 것이 가장 좋습니다. 당신은 MySQL의 전문가가 아니라면 정확히 바로 포맷을 얻을 때까지,이 기술은 도움이 될 수 있습니다.

  3. from https://stackoverflow.com/questions/2238611/how-to-change-string-date-to-mysql-date-format-at-time-of-import-of-csv-using-my by cc-by-sa and MIT license