我的mysql表中确实有一个名为leave_date的列。
这就是我创造它的方式。
leave_date DATE NOT NULL DEFAULT '0000-00-00'在我早期的mysql版本中,这是可以的,但是现在我有了5.7,当我尝试创建上面的表时,我可以得到一个错误。
消息如下所示:
错误1067 (42000):“leave_date”的默认值无效
有人能告诉我问题出在哪里吗?
谢谢。
发布于 2016-08-09 08:31:50
您的问题是您没有使用有效的日期。
MySQL中的最小有效日期是'1000-01-01',每个关系数据库通常都有自己的最小日期值。甲骨文是0001-01-01,Server是01/01/1753 .
编辑:由您收到的错误,我相信您在本专栏中也有时间价值吗?尝试将其更改为日期时间。
ALTER TABLE employees MODIFY leave_date DATETIME NOT NULL DEFAULT '1000-10-01'或者更新表,并自己标记时间,然后使用alter命令。
发布于 2016-08-09 08:30:17
这是官方站点的文档。(MySQL5.7)
日期类型用于日期部分的值,但不用于时间部分。MySQL检索并以‘YYYY DD’格式显示日期值.支持范围为“1000-01-01”到“9999-12-31”。
0000-00-00不在1000-01-01到9999-12-31的范围内。
发布于 2016-08-09 08:35:23
这是因为服务器SQL模式- 日期。
参考资料如下:
NO_ZERO_DATE -在严格模式下,不允许“0000-00-00”作为有效日期。仍然可以使用“忽略”选项插入零日期。当不处于严格模式时,日期将被接受,但会生成警告。
https://stackoverflow.com/questions/38845657
复制相似问题