问题
I am trying to load data from excel sheet to the below table on MYSQL 5.6 on windows 8.1 and I am getting 'Incorrect datetime value:' error.
Term date column is of DATETIME data type and the data has null values in the excel sheet which I am trying to insert into the table.
I did some research and found that the problem is with the SQL strict mode. But I am not able to figure out how to disable or modify the SQL strict mode.
I in fact tried this SET SESSION sql_mode='ALLOW_INVALID_DATES'
but no luck.
Some said editing my.ini file in installation directory will help but I am not able to find it in the installation directory.
can any one please help me resolve this issue.
create table EMPLOYEE(EMP_ID integer(10),
EMP_NAME char(25),
SALARY integer(25),
START_DATE datetime,
TERM_DATE datetime DEFAULT '1900-01-01',
PRIMARY KEY (EMP_ID));
Error Message:
15:23:08 INSERT INTO `mith`.`EMPLOYEE` (`EMP_ID`, `EMP_NAME`, `SALARY`, `START_DATE`, `TERM_DATE`) VALUES ('26', 'Will Banker', '90000', '00:00.0', '') 1292: Incorrect datetime value: '' for column 'TERM_DATE' at row 1
回答1:
In MySQL, ''
(an empty string) is different from a null
. If you want a null
value, you should use an explicit null
:
INSERT INTO `mith`.`EMPLOYEE`
(`EMP_ID`, `EMP_NAME`, `SALARY`, `START_DATE`, `TERM_DATE`)
VALUES ('26', 'Will Banker', '90000', '00:00.0', null)
回答2:
I managed to solve a similar problem using the commands:
mysql> set session sql_mode='';
and
mysql> set global sql_mode='';
in mysql prompt.
回答3:
Try replacing the null values in Excel with 0000-00-00. I have not tried this with Excel, but it works for csv file. import
来源:https://stackoverflow.com/questions/28530195/1292-incorrect-datetime-value-for-column-term-date-at-row-1