gorm插入报错Error 1292 (22007): Incorrect datetime value: ‘0000-00-00‘ for column ‘xxx‘ at row 1
·
目录
背景
使用gorm连接mysql做插入操作时,其中DATETIME类型的列未设置值报错:Error 1292 (22007): Incorrect datetime value: '0000-00-00' for column 'xxx' at row 1
在MySQL中,'0000-00-00 00:00:00'不是一个合法的DATETIME值。从MySQL 5.7.5开始,默认情况下不允许插入零日期或零时间值到DATETIME或 TIMESTAMP列,除非明确允许。
在gorm中,如果没有为DATETIME类型的字段提供具体的时间值,MySQL就会尝试插入默认值'0000-00-00 00:00:00',从而导致这个错误。
解决办法
三选一
1、插入时确保让对应的列有值
2、对应的列设置默认值可以为null
type:DATETIME; default:NULL;
3、对应的列直接改为指针类型,只要字段是指针类型,gorm会自动处理并允许插入时该字段为NULL。
如果你想在每次设置时默认为当前时间:
DEFAULT:CURRENT_TIMESTAMP
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)