我在Google Cloud Datastore NoSQL数据库中有数据。此数据库中的对象包含type Time.time
字段,特别是RFC3339格式(YYYY-MM-DDThh:mm:ssTZD)。我正在将这些数据转移到Google Cloud SQL数据库中,我想知道将RFC3339格式的时间数据存储在MySQL数据库中时最佳做法是什么。
This post强烈建议如下:
所有日期和时间列应为
INT UNSIGNED NOT NULL
,并且应为 以UTC格式存储Unix时间戳。
那么,我应该只使用Golang's func (t Time) Unix()
并以这种方式存储数据吗?存储数据有哪些替代方法?如果我不听从海报的建议,我会遇到什么样的问题?
答案 0 :(得分:2)
如果您正在使用parseTime=true
,则可以要求驱动程序自动将DATE和DATETIME扫描到time.Time,方法是将db, _ := sql.Open("mysql", "root:@/?parseTime=true")
var myTime time.Time
row, err := db.QueryRow("SELECT current_timestamp()")
row.Scan(&myTime)
fmt.Println(myTime)
添加到您的连接字符串中。
请参阅https://github.com/go-sql-driver/mysql#timetime-support
示例代码:
string = '9x3420aAbD8'