本文介绍: Gorm : Error 1292 (22007): Incorrect datetime value: ‘0000-00-00’ for columnlogin_timeat row 1 当前版本mysql 不能设置为 ‘0000-00-00’

Gorm : Error 1292 (22007): Incorrect datetime value: ‘0000-00-00’ for columnlogin_timeat row 1

当前版本的 mysql 不能设置为 ‘0000-00-00’

一、解决方案

  1. 设置当前时间(因为初始化用户时,用用户登录,不恰当)
    models.go
user := &models.UserBasic{
		Name: "Allan",
		LoginTime: time.Now(),
	}
  1. sql_mode 去掉 no_zero_date
set global sql_mode='strict_trans_tables,no_zero_in_date,error_for_division_by_zero,no_auto_create_user,no_engine_substitution';
  1. UserBasic 重新定义 LoginTIme
    修改之前:
type UserBasic struct {
	gorm.Model
	Name          string
	Password      string
	LoginTime     time.Time `gorm:"column:login_time" json:"login_time"`
	HeartBeatTime time.Time `gorm:"column:heart_beat_time" json:"heart_beat_time"`
	LogoutTime    time.Time `gorm:"column:logout_time" json:"logout_time"`
	IsLogout      bool
	DeviceInfo    string
}

修改之后:

type UserBasic struct {
	gorm.Model
	Name          string
	Password      string
	LoginTime     *time.Time `gorm:"column:login_time" json:"login_time"`
	HeartBeatTime *time.Time `gorm:"column:heart_beat_time" json:"heart_beat_time"`
	LogoutTime    *time.Time `gorm:"column:logout_time" json:"logout_time"`
	IsLogout      bool
	DeviceInfo    string
}

或者

type UserBasic struct {
	gorm.Model
	Name          string
	Password      string
	LoginTime     sql.NullTime `gorm:"column:login_time" json:"login_time"`
	HeartBeatTime sql.NullTime `gorm:"column:heart_beat_time" json:"heart_beat_time"`
	LogoutTime    sql.NullTime `gorm:"column:logout_time" json:"logout_time"`
	IsLogout      bool
	DeviceInfo    string
}

二、结果

[258.179ms] [rows:0] CREATE TABLE `user_basic` (`id` bigint unsigned AUTO_INCREMENT,`created_at` datetime(3) NULL,`updated_at` datetime(3) NULL,`deleted_at` datetime(3) NULL,`name` longtext,`password` longtext,`login_time` datetime(3) NULL,`heart_beat_time` datetime(3) NULL,`logout_time` datetime(3) NULL,`is_logout` boolean,`device_info` longtext,PRIMARY KEY (`id`),INDEX `idx_user_basic_deleted_at` (`deleted_at`))

原文地址:https://blog.csdn.net/Allan_shore_ma/article/details/129328584

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

如若转载,请注明出处:http://www.7code.cn/show_7923.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注