나는 아주 잘 TxtToMy
모르지만, 당신이 didierc 위의 제안처럼 당신이 솔루션을 구현하는 것을 허용하지 않을 경우, 및를 사용하는 경우, 다음 하나의 옵션은 VARCHAR 열을 추가하는 것입니다 원시 날짜를 가져오고 트리거를 사용하여 "실제"날짜 열을 업데이트합니다.
이 테이블은
ALTER TABLE MOVIES ADD (RawDateFromIMDB VARCHAR(10));
그런 다음
RawDateFromIMDB
대신
release_date
로 가져 오기 위해
TxtToMy
정의를 변경 ...
MOVIES
라는 가정하면.
이 트리거는 원시 일을하고 release_date
열을 업데이트하는 데 사용됩니다
CREATE TRIGGER Movie_RawDateParse
BEFORE INSERT ON Movies
FOR EACH ROW
BEGIN
SET NEW.release_date = str_to_date(NEW.RawDateFromIMDB, '%Y-%m-%d');
END;
MySQL은 그래서이 날 때 근무 '1983-05-00'와 같은 날짜를 완벽하게 행복해 보인다 1983-05
을 RawDateFromIMDB
에 '가져 왔습니다'. 또한 아래에서 볼 수 있듯이 "정규"날짜에 근무했습니다.
mysql> INSERT INTO Movies (RawDateFromIMDB) values ('1983-05');
Query OK, 1 row affected (0.03 sec)
mysql> INSERT INTO Movies (RawDateFromIMDB) values ('1983-06-22');
Query OK, 1 row affected (0.04 sec)
mysql> SELECT release_date, RawDateFromIMDB FROM Movies;
+--------------+-----------------+
| release_date | RawDateFromIMDB |
+--------------+-----------------+
| 1983-05-00 | 1983-05 |
| 1983-06-22 | 1983-06-22 |
+--------------+-----------------+
2 rows in set (0.00 sec)
수작업으로 csv를 편집하면 완료됩니다. 파일이 규칙적으로 생성 된 경우 정규 표현식을 사용하여 작은 스크립트를 작성하여 깨진 날짜를 변경하십시오. 나는 이것이 MySQL에 있어야한다고 생각하지 않는다. – didierc