代码之家  ›  专栏  ›  技术社区  ›  Parad0X

postgresql中的GORM更改时间格式

  •  0
  • Parad0X  · 技术社区  · 4 年前

    我对使用通用GORM模型的postgresql表中的时间有问题

       gorm.Model
    

    带字段

        type Model struct {
        ID        uint `gorm:"primary_key"`
        CreatedAt time.Time
        UpdatedAt time.Time
        DeletedAt *time.Time `sql:"index"`
    }
    

    表中所有日期的格式为2020-04-21 22:05:07.067446

    谢谢你的帮助

    0 回复  |  直到 4 年前
        1
  •  0
  •   Eklavya    4 年前

    你可以用 BeforeCreate BeforeUpdate gorm.Model 手动设置数据库的值。 创建 BaseModel 因为不能对其他包类型使用类型receiver。

    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
    }
    

    type Data struct {
        BaseModel
        Name string
    }