1292:第1行的列的datetime值“”不正确

jm2pwxwz  于 2021-06-25  发布在  Mysql
关注(0)|答案(3)|浏览(448)

在Windows8.1的MySQL5.6上,我试图将数据从excel工作表加载到下表,但得到了“不正确的datetime值”错误。
term date列是datetime数据类型,并且该数据在我试图插入到表中的excel表中具有空值。
我做了一些研究,发现问题出在sql严格模式上。但是我不知道如何禁用或修改sqlstrict模式。
事实上我试过这个 SET SESSION sql_mode='ALLOW_INVALID_DATES' 但运气不好。
有人说在安装目录中编辑我的.ini文件会有帮助,但我在安装目录中找不到它。
有谁能帮我解决这个问题吗。

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));

错误消息:

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
roejwanj

roejwanj1#

尝试用0000-00-00替换excel中的空值。我没有用excel尝试过,但它适用于csv文件。进口

uqdfh47h

uqdfh47h2#

我用命令解决了一个类似的问题:

mysql> set session sql_mode='';

mysql> set global sql_mode='';

在mysql提示符下。

6gpjuf90

6gpjuf903#

在mysql中, '' (空字符串)与 null . 如果你想要一个 null 值时,应使用显式 null :

INSERT INTO `mith`.`EMPLOYEE` 
(`EMP_ID`, `EMP_NAME`, `SALARY`, `START_DATE`, `TERM_DATE`)
VALUES ('26', 'Will Banker', '90000', '00:00.0', null)

相关问题