Mithun Raj
Mithun Raj

Reputation: 51

1292: Incorrect datetime value: '' for column at row 1

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  

Upvotes: 5

Views: 28430

Answers (3)

Marcos Roberto Silva
Marcos Roberto Silva

Reputation: 104

I managed to solve a similar problem using the commands:

mysql> set session sql_mode='';

and

mysql> set global sql_mode='';

in mysql prompt.

Upvotes: 6

Joachim
Joachim

Reputation: 151

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

Upvotes: 3

Mureinik
Mureinik

Reputation: 311528

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)

Upvotes: 6

Related Questions