mysql5.7+版本,date类型设置默认值0000-00-00 报错
在本地建表,发现无法给date类型设置默认值为 0000-00-00 ,报错:

在mysql命令行输入:SELECT @@SQL_MODE ,可以看到值为:
ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
这个是默认值,其中 NO_ZERO_IN_DATE 这个限制了date类型里,不能有0值。
解决办法:去mysql安装路径下,找到my.ini文件,设置如下:
sql_mode=STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
设置好后,需要重启mysql服务,具体路径:此电脑--右键--管理---服务,找到mysql服务,停止,启动,再去mysql命令行执行 SELECT @@SQL_MODE ,执行sql就可以了。
一个集才华与美貌于一身的程序员
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南