在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
本人解决办法:在代码表结构里设置类型time.Time,写入time.Now()
go和mysql数据类型对应:https://blog.csdn.net/qqqqll3/article/details/88538514
原文链接:https://blog.csdn.net/HYZX_9987/article/details/135411963
标签:Incorrect,00,0000,DATETIME,插入,报错,MySQL,gorm From: https://www.cnblogs.com/inkmouse/p/18356289