更新记录时,应尝试手动设置UpdatedAt字段。大概是这样的:
更新记录时,应尝试手动设置UpdatedAt字段。大概是这样的:
在对于Tag表的定义中,可以看出我们分别定义了三个时间字段:created_at,updated_at,online_at。通常情况下,在数据库中updated_at字段会设置on update: CURRENT_TIMESTAMP。也就是说,当有数据写入或者更新的时候,数据库会自动更新updated_at中的时间。所以,我们在写业务逻辑代码的时候,就不需要去更新updated_at的值。
UpdatedAtint// 默认更新时间字段, 在创建时该字段值为零值或者在更新时,使用当前时间戳秒数填充 Updatedint64`gorm:"autoUpdateTime:nano"`// 自定义字段, 使用时间戳填纳秒数充更新时间 Updatedint64`gorm:"autoUpdateTime:milli"`//自定义字段, 使用时间戳毫秒数填充更新时间 Createdint64`gorm:"autoCreateTime"...
自定义基础模型:ID、Created、Updated、Deleted 1 2 3 4 5 6 typeBaseModelstruct{ ID uint `gorm:"primarykey"` Created time.Time `gorm:"autoCreateTime"` Updated time.Time `gorm:"autoUpdateTime"` Deleted gorm.DeletedAt `gorm:"index"`
INSERT INTO `users` (`name`,`age`,`created_at`) VALUES ("jinzhu", 18, "2020-07-04 11:05:21.775") 指定忽略某几个字段 db.Omit("Name","Age","CreatedAt").Create(&user) INSERT INTO `users` (`birthday`,`updated_at`) VALUES ("2020-01-01 00:00:00.000", "2020-07-04 11:05:21....
("updated_at > ?", lastWeek).Find(&users)// SELECT * FROM users WHERE updated_at > '2000-01-01 00:00:00';// BETWEENdb.Where("created_at BETWEEN ? AND ?", lastWeek, today).Find(&users)// SELECT * FROM users WHERE created_at BETWEEN '2000-01-01 00:00:00' AND '2000-01-...
则使用当前时间填充UpdatedAt int// 在创建时该字段值为零值或者在更新时,使用当前时间戳秒数填充Updated int64`gorm:"autoUpdateTime:nano"`// 使用时间戳填纳秒数充更新时间Updated int64`gorm:"autoUpdateTime:milli"`// 使用时间戳毫秒数填充更新时间Created int64`gorm:"autoCreateTime"`// 使用时间戳秒数...
gorm.Model//定义模型,将ID,created_at,updated_at,deleted_at添加进结构体NamestringAgeint}//type Model struct {//ID uint `gorm:"primarykey"`//CreatedAt time.Time//UpdatedAt time.Time//DeletedAt DeletedAt `gorm:"index"`//}//实例化结构体的时候,time.Time输入字符串报错,所以这里定义了一个将...
Updated int64 `gorm:"autoUpdateTime:milli"` //自定义字段, 使用时间戳毫秒数填充更新时间 Created int64 `gorm:"autoCreateTime"` //自定义字段, 使用时间戳秒数填充创建时间 } 1. 2. 3. 4. 5. 6. 7. 四、gorm连接数据库 gorm支持多种数据库,这里主要介绍mysql,连接mysql主要有两个步骤: ...