Error 1292: Incorrect datetime value: '0000-00-00' for column 'created_at' at row 1
有疑问加站长微信联系(非本文作者)

Error 1292: Incorrect datetime value: '0000-00-00' for column 'created_at' at row 1
有疑问加站长微信联系(非本文作者)
入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889
`单行代码`
你的struct 发一下,看一下结构体定义
@18393910396
go type User struct { gorm.Model Username string `gorm:"type:varchar(20);unique_index"` Password string `gorm:"type:varchar(64)"` Phone string `gorm:"type:char(11);unique_index"` }
@18393910396 我先是将request body Decode到结构体
RegisterBody
中然后用
govalidator
验证结构体正确之后就 插入数据库,但是gorm
好像没有自动生成当前时间,然后一直报错http://gorm.io/zh_CN/docs/conventions.html 看一下对应的结构字段和tag对不对
@18393910396 结构字段和tag都没错,直接是在结构体里引用了
gorm.Model
,如果我其他的字段个tag有误应该会报错的,刚刚试了下在db.Create
前打印了结构体的CreatedAt字段,显示的是0001-01-01 00:00:00 +0000 UTC
,不是说gorm
会自动插入当前的时间吗。。。在mysql里改了一下配置(把NO_ZERO_DATE去掉了)
就可以插入了,但是在插入前打印结构体
user.CreatedAt
显示的是0001-01-01 00:00:00 +0000 UTC
,插入后去表里看到的时间却是正确的时间,例如2019-10-22 13:38:28
,真的服了,不知道咋回事应该是你得mysql版本是新版本的,mysql以前 datetime 的默认值可以设为 '0000-00-00 00:00:00', 新的mysql不能设为这个值,可以把默认值设置为正常的时间就可以了, 比如 '2019-01-01 00:00:00'
一样的问题