2017-09-19 1 views
0

다음 표를 작성한 후 날짜를 DEFAULT NULL로 설정했습니다. 그러나 빈 문자열을 테이블에 삽입하려고 할 때. 나는 오류를 얻을 것이다. 빈 필드를 처리하여 날짜에 삽입하는 가장 좋은 방법은 무엇입니까?MySQL 5는 날짜가 null이고, 날짜를 삽입 할 수 없습니다 = ''이유는 무엇입니까?

CREATE TABLE `testing` (
    `AUTOINC` double NOT NULL AUTO_INCREMENT, 
    `TST` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE 
CURRENT_TIMESTAMP, 
    `EMP_CODE` varchar(10) NOT NULL DEFAULT '', 
    `DT_JOIN` date DEFAULT NULL, 
    `DT_CONFIRM` date DEFAULT NULL, 
    `DT_RESIGN` date DEFAULT NULL, 
    `USER_ID` varchar(6) NOT NULL DEFAULT '', 
    `DATETIME` datetime DEFAULT NULL, 
    PRIMARY KEY (`AUTOINC`) 
) ENGINE=MyISAM AUTO_INCREMENT=126 DEFAULT CHARSET=utf8; 


insert into TMEMPLY (EMP_CODE,DT_JOIN,DT_CONFIRM,DT_RESIGN,USER_ID,DATETIME) 
values ('TEST','2017-09-19','','','BRO','2017-09-19 14:47:21') 

오류 내가 날짜를 빈 필드를 처리 할 방법

Incorrect date value: '' for column 'DT_CONFIRM' 

. 예를 들어, 사용자가 양식의 날짜에 대해 빈 필드를 입력 및 남겨 두지 않은 경우. 가장 좋은 방법은 무엇입니까?

답변

1

문제는 datetime 열이 유효한 날짜 또는 null 값을 받아들입니다. 그러므로 '' (공백) 대신에 null을 전달하십시오. 이미 알고 계시 겠지만 ''null이 아닙니다. 쿼리는 다음과 같습니다.

insert into TMEMPLY (EMP_CODE,DT_JOIN,DT_CONFIRM,DT_RESIGN,USER_ID,DATETIME) 
values ('TEST','2017-09-19', null, null,'BRO','2017-09-19 14:47:21') 
관련 문제