5

我正在尝试在 Windows 8.1 上的 MYSQL 5.6 上将数据从 excel 表加载到下表中,并且出现“日期时间值不正确:”错误。

术语日期列是 DATETIME 数据类型,并且数据在我试图插入表中的 excel 表中具有空值。

我做了一些研究,发现问题出在 SQL 严格模式上。但我无法弄清楚如何禁用或修改 SQL 严格模式。

我实际上尝试过这个SET SESSION sql_mode='ALLOW_INVALID_DATES',但没有运气。

有人说在安装目录中编辑 my.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  
4

3 回答 3

6

在 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)
于 2015-02-15T19:55:16.630 回答
6

我设法使用以下命令解决了类似的问题:

mysql> set session sql_mode='';

mysql> set global sql_mode='';

在 mysql 提示符下。

于 2017-06-06T20:23:39.250 回答
3

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

于 2015-02-28T21:20:25.420 回答