【发布时间】:2017-08-05 19:13:48
【问题描述】:
如何在mysql表中保存time.Now(),列名为created_at timestamp null。
我收到错误:
Error:Error 1292: Incorrect datetime value: '2017-08-05 19:06:14.190 +0000' for column 'created_at' at row 1
询问的更多信息:-(我使用的是fragmenta cms,所以下面给出了所有参考代码及其行号)
表架构:-
mysql> describe users;
+----------------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------------------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| created_at | timestamp | YES | | NULL | |
| updated_at | timestamp | YES | | NULL | |
| status | int(11) | YES | | NULL | |
| role | int(11) | YES | | NULL | |
| name | varchar(250) | YES | | NULL | |
| email | varchar(250) | YES | | NULL | |
| title | varchar(250) | YES | | NULL | |
| summary | text | YES | | NULL | |
| text | text | YES | | NULL | |
| image_id | int(11) | YES | | NULL | |
| password_hash | varchar(250) | YES | | NULL | |
| password_reset_token | text | YES | | NULL | |
| password_reset_at | timestamp | YES | | NULL | |
+----------------------+--------------+------+-----+---------+----------------+
运行它以保存的代码:-
在第 1 行。 62 在这里(https://github.com/fragmenta/fragmenta-cms/blob/master/src/pages/actions/setup.go#L62)
它调用代码
user := users.New()
在第 1 行。 51 在文件中 (https://github.com/fragmenta/fragmenta-cms/blob/master/src/users/query.go#L51)
New() 功能已设置。
这就像:-
func New() *User {
user := &User{}
user.CreatedAt = time.Now()
user.UpdatedAt = time.Now()
user.TableName = TableName
user.KeyName = KeyName
user.Status = status.Draft
return user
}
他们的连接/mysql打开模式位于这里(https://github.com/fragmenta/query/blob/master/adapters/database_mysql.go#L23)。
【问题讨论】:
-
在您的 MySQL 连接字符串中包含
parseTime=True并尝试。 -
charset=utf8&parseTime=true已经存在 -
您能分享一下您的数据库架构吗?
-
那么这是 MySQL DB 时区设置问题而不是 Go 问题。请检查您的数据库设置。
-
如果有帮助 - 我正在使用
fragmentaCMS 和mysql。
标签: go