我正在尝试将数据从excel表加载到Windows 8.1上的MYSQL 5.6上的下表中,我得到的日期时间值不正确:'错误。
期限日期列属于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
答案 0 :(得分:5)
在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)
答案 1 :(得分:3)
我设法使用命令解决了类似的问题:
mysql> set session sql_mode='';
和
mysql> set global sql_mode='';
在mysql提示符中。
答案 2 :(得分:2)
尝试使用0000-00-00替换Excel中的空值。我没有尝试使用Excel,但它适用于csv文件。进口