我为用户提供了以下自定义类型:
type User struct {
UserID uint64 `gorm:"primaryKey"`
CreatedAt time.Time
UpdatedAt time.Time
LastLogin time.Time
}
当传递给 gorm 的方法时,用户初始化如下:db.Create()
return User{
UserID: userID,
AccountID: accountID,
UserType: userType,
Status: status,
UserInfo: &userInfo,
CreatedAt: now,
UpdatedAt: now,
}
因为是MySQL中的可空列,所以我没有在这里初始化它的值。LastLogintimestamp
现在 gorm 将在 SQL 语句中解析未设置的值,并导致以下错误。'0000-00-00 00:00:00.000000'
Error 2021-01-29 15:36:13,388 v1(7) error_logger.go:14 192.168.10.100 - - default - 0 Error 1292: Incorrect datetime value: '0000-00-00' for column 'last_login' at row 1
虽然我理解MySQL如何在不更改某些模式的情况下不允许零时间戳值,但我可以轻松初始化时间。时间字段是一些遥远的日期,例如 2038-ish。我如何告诉 gorm 在 SQML 中将零时间字段作为 NULL 传递?
蝴蝶刀刀
哆啦的时光机
相关分类