.txt 파일에서 mySQL 테이블로 읽는 작업이 제공되었습니다. 내가 한 일은 다음과 같습니다.str_to_date를 사용하여 .txt 파일에서 날짜 유형을 읽을 때 mysql 문제가 발생했습니다.
CREATE TABLE PERSON(PIDM INT, FNAME VARCHAR(20), LNAME VARCHAR(20), SSN INT(8), DOB DATE, GENDER CHAR(2));
LOAD DATA LOCAL INFILE '/pathtoTextFile'
INTO TABLE PERSON
FIELDS TERMINATED BY ', '
LINES TERMINATED BY '\n'
IGNORE 1 ROWS
(PIDM, FNAME, LNAME, SSN, @DATE, GENDER)
SET DOB = STR_TO_DATE(@DATE, '%m-%d-%Y');
하지만 이렇게하면 여러 경고가 표시됩니다. 나는 내가 STR_TO_DATE 기능/방법에서 잘못된 날짜를 얻을 이유를 알아낼 수 없었다
+---------+------+-----------------------------------------------------------------+
| Level | Code | Message |
+---------+------+-----------------------------------------------------------------+
| Warning | 1411 | Incorrect datetime value: '12/14/1957' for function str_to_date |
| Warning | 1411 | Incorrect datetime value: '01/13/1969' for function str_to_date |
| Warning | 1264 | Out of range value for column 'SSN' at row 3 |
| Warning | 1411 | Incorrect datetime value: '02/14/1976' for function str_to_date |
| Warning | 1366 | Incorrect integer value: '' for column 'SSN' at row 4 |
| Warning | 1411 | Incorrect datetime value: '03/12/1989' for function str_to_date
: 포함 . 이것은 학습 훈련 기관으로되어 있지만 2 시간 동안 그곳에 있었으므로 어디에도 없었습니다. 누구든지 내가 뭘 잘못하고 있는지에 대한 조언이나 생각이 있습니까?
감사합니다.
P. 그 목적은 .txt 파일이 작동하도록 변경하지 않고 잘못된 입력을 처리 할 수 있도록하는 것입니다.
년 월 일 사이의 문자를 고려 했습니까? 당신은 대시를 지정했습니다, 그러나 오류는 슬래시를 보여줍니다. –
재밌는 것은 제가 '/'로 바꾸려고했으나 분명히하지 않았고, 돌아 왔을 때 효과가있었습니다. 감사. SSN이 8 자리가 아니라면 NULL의 값을 어떻게 지정합니까? –
'case (length) (ssn) <> 8 인 경우 NULL, 그렇지 않으면 SSN end'; 그러나 당신은이 질문을 의미해야한다 대답을 아래로 응시하여 답변을 –