首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mysql日期数据类型的默认值不起作用

mysql日期数据类型的默认值不起作用
EN

Stack Overflow用户
提问于 2016-08-09 08:28:20
回答 3查看 1.1K关注 0票数 2

我的mysql表中确实有一个名为leave_date的列。

这就是我创造它的方式。

代码语言:javascript
复制
leave_date DATE NOT NULL DEFAULT '0000-00-00'

在我早期的mysql版本中,这是可以的,但是现在我有了5.7,当我尝试创建上面的表时,我可以得到一个错误。

消息如下所示:

错误1067 (42000):“leave_date”的默认值无效

有人能告诉我问题出在哪里吗?

谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-08-09 08:31:50

您的问题是您没有使用有效的日期。

MySQL中的最小有效日期是'1000-01-01',每个关系数据库通常都有自己的最小日期值。甲骨文是0001-01-01,Server是01/01/1753 .

编辑:由您收到的错误,我相信您在本专栏中也有时间价值吗?尝试将其更改为日期时间。

代码语言:javascript
复制
ALTER TABLE employees MODIFY leave_date DATETIME NOT NULL DEFAULT '1000-10-01'

或者更新表,并自己标记时间,然后使用alter命令。

票数 2
EN

Stack Overflow用户

发布于 2016-08-09 08:30:17

这是官方站点的文档。(MySQL5.7)

日期类型用于日期部分的值,但不用于时间部分。MySQL检索并以‘YYYY DD’格式显示日期值.支持范围为“1000-01-01”到“9999-12-31”。

0000-00-00不在1000-01-019999-12-31的范围内。

票数 2
EN

Stack Overflow用户

发布于 2016-08-09 08:35:23

这是因为服务器SQL模式- 日期

参考资料如下:

NO_ZERO_DATE -在严格模式下,不允许“0000-00-00”作为有效日期。仍然可以使用“忽略”选项插入零日期。当不处于严格模式时,日期将被接受,但会生成警告。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38845657

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档