GORM 更改 postgresql 中的时间格式
GORM Change time format in postgresql
我在使用通用 GORM 模型
的 postgresql table 中遇到时间问题
gorm.Model
具有字段
type Model struct {
ID uint `gorm:"primary_key"`
CreatedAt time.Time
UpdatedAt time.Time
DeletedAt *time.Time `sql:"index"`
}
table 中的所有日期的格式为 2020-04-21 22:05:07.067446
请问我可以更改为 timstamp(LONG) 或没有 .067446
的东西吗
感谢您的帮助
您可以使用 BeforeCreate and BeforeUpdate 挂钩 gorm.Model
来手动设置数据库的值。
创建 BaseModel
因为您不能将类型接收器用于其他包类型。
type BaseModel struct {
gorm.Model
}
然后手动设置值CreatedAt
和UpdatedAt
没有纳秒
func (b *BaseModel) BeforeCreate() (err error) {
b.CreatedAt = time.Unix(time.Now().Unix(), 0) // Calculate without nanosec
return
}
func (b *BaseModel) BeforeUpdate() (err error) {
b.UpdatedAt = time.Unix(time.Now().Unix(), 0) // Calculate without nanosec
return
}
然后在您的数据库模型中使用 BaseModel
type Data struct {
BaseModel
Name string
}
我在使用通用 GORM 模型
的 postgresql table 中遇到时间问题 gorm.Model
具有字段
type Model struct {
ID uint `gorm:"primary_key"`
CreatedAt time.Time
UpdatedAt time.Time
DeletedAt *time.Time `sql:"index"`
}
table 中的所有日期的格式为 2020-04-21 22:05:07.067446 请问我可以更改为 timstamp(LONG) 或没有 .067446
的东西吗感谢您的帮助
您可以使用 BeforeCreate and BeforeUpdate 挂钩 gorm.Model
来手动设置数据库的值。
创建 BaseModel
因为您不能将类型接收器用于其他包类型。
type BaseModel struct {
gorm.Model
}
然后手动设置值CreatedAt
和UpdatedAt
没有纳秒
func (b *BaseModel) BeforeCreate() (err error) {
b.CreatedAt = time.Unix(time.Now().Unix(), 0) // Calculate without nanosec
return
}
func (b *BaseModel) BeforeUpdate() (err error) {
b.UpdatedAt = time.Unix(time.Now().Unix(), 0) // Calculate without nanosec
return
}
然后在您的数据库模型中使用 BaseModel
type Data struct {
BaseModel
Name string
}