gorm使用Save方法处理时间字段的坑
视频地址
测试代码以及说明
package gorm_tests import ( "fmt" "github.com/stretchr/testify/require" "gorm.io/driver/mysql" "gorm.io/gorm" "testing" "time" ) const ( userTableName = "user" ) type User struct { ID uint `gorm:"primaryKey;column:id"` Name string `gorm:"column:name"` Age uint8 `gorm:"column:age"` // Notice gorm内置自动更新的字段!如果是创建/更新的话会自动将当前时间创建/更新进去 CreatedAt time.Time `gorm:"column:created_at"` UpdatedAt time.Time `gorm:"column:updated_at"` // Notice 如果要自定义一个不一样的字段,需要加 default:null // Notice 并且在创建数据库的时候 这2个字段要加额外的配置: /* `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '记录创建时间', `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '记录更新时间', */ CreateTime time.Time `gorm:"column:create_time;default:null"` UpdateTime time.Time `gorm:"column:update_time;default:null"` } func (u User) TableName() string { return userTableName } func TestT1(t *testing.T) { dsn := "root:123@tcp(127.0.0.1:3307)/whw?charset=utf8mb4&parseTime=True&loc=Local" db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{}) require.Equal(t, err, nil) fmt.Println("db: ", db) user := &User{ ID: 88, // 如果ID存在则更新,如果ID不存在则创建! } db = db.Model(&User{}) db.First(&user) user.Name = "天蓬" user.Age = 99 // Notice Save方法 err = db.Save(&user).Error require.Equal(t, err, nil) }
~~~
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
2019-07-27 基于DRF的图书增删改查练习
2019-07-27 【转】很实用的编程英语词库,共收录一千五百余条词汇
2018-07-27 Django的模板层简介
2018-07-27 Django的视图层简介
2018-07-27 Django中的路由配置简介