2016-10-11 5 views
1

Google Cloud Datastore NoSQLデータベースにデータがあります。このデータベースのオブジェクトには、type Time.timeのフィールド、具体的にはRFC3339フォーマット(YYYY-MM-DDThh:mm:ssTZD)のフィールドが含まれています。私はこのデータの一部をGoogle Cloud SQLデータベースに移行しており、RFC3339でフォーマットされた時刻データをMySQLデータベースに保存する際のベストプラクティスとは何か考えられています。MySQLデータベースにRFC3339の時刻を保存するときのベストプラクティスは何ですか?

This post次のことを強く示唆している:

すべての日付と時刻の列はINT UNSIGNED NOT NULLしなければならない、と UTCにUnixタイムスタンプを保存するものとします。

だから、ちょうどGolang's func (t Time) Unix()を使用し、そのようにデータを保存する必要がありますか?データを保存するための代替アプローチは何ですか?ポスターのアドバイスに耳を傾けないと、私はどのような問題に直面するでしょうか?

答えて

2

go-sql-driver/mysqlを使用している場合は、接続文字列にparseTime=trueを追加することで、DATEとDATETIMEを自動的にtime.Timeにスキャンするようにドライバに依頼することができます。

https://github.com/go-sql-driver/mysql#timetime-support

コード例を参照してください:

db, _ := sql.Open("mysql", "root:@/?parseTime=true") 

var myTime time.Time 
row, err := db.QueryRow("SELECT current_timestamp()") 

row.Scan(&myTime) 
fmt.Println(myTime) 
関連する問題