삽입하기 전에 CSV 파일에서 날짜 형식을 변경하려고합니다. 삽입하기 전에 방아쇠를 만들었지 만 작동하지 않는 것 같습니다. INSERT IGNORE INTO pricelist.items (price_list_id, sku, description, cost, start_date, end_date, notes) VALUES ('15', '2494-22', 'M12 DRILL/IMPACT COMBO KIT', '129', '4/25/2016', '5/31/2016', 'CL6204');
오류 코드 : 1411. str_to_date 함수에 대해 잘못된 datetime 값 : '0000-00-00'
나는이 오류가 : INSERT
CREATE TRIGGER `pricelist`.`items_BEFORE_INSERT` BEFORE INSERT ON `items` FOR EACH ROW
BEGIN
SET NEW.start_date = str_to_date(NEW.start_date, '%c/%e/%Y');
SET NEW.end_date = str_to_date(NEW.end_date, '%c/%e/%Y');
END
하자 쿼리는 말을하기 전에
CREATE TABLE items (
item_id int(11) NOT NULL AUTO_INCREMENT,
price_list_id int(11) NOT NULL,
sku varchar(20) NOT NULL,
description varchar(45) DEFAULT NULL,
cost float NOT NULL DEFAULT '0',
notes varchar(45) DEFAULT NULL,
discount_factor float DEFAULT '1',
start_date date DEFAULT NULL,
end_date date DEFAULT NULL,
PRIMARY KEY (item_id,sku),
KEY price_list_id_idx (price_list_id),
CONSTRAINT price_list_id FOREIGN KEY (price_list_id) REFERENCES price_lists (price_list_id) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB AUTO_INCREMENT=105193 DEFAULT CHARSET=utf8;
이 내 트리거입니다
`Error Code: 1411. Incorrect datetime value: '0000-00-00' for function str_to_date`
내가 할 경우 (무시하지 않고) :
012 이 작동하지만Error Code: 1292. Incorrect date value: '4/25/2016' for column 'start_date' at row 1
:
SELECT str_to_date('5/31/2016', '%c/%e/%Y');
출력은 다음과 같습니다 34,931,846,352,836,223,233,210
나는이 얻을
2016-05-31
는 어떤 도움을 주시면 감사하겠습니다! 감사.
잘 모르겠지만 테이블의 날짜에 기본 null과 관련이 있다고 생각합니다. –
분명히 datetime 값이 잘못되었습니다. – Blank
@RichardBarker보기 위해 제거하려고합니다. – GeniusMile