2016-10-11 3 views
1

Google Cloud Datastore NoSQL 데이터베이스에 데이터가 있습니다. 이 데이터베이스의 개체는 type Time.time 필드, 특히 RFC3339 형식 (YYYY-MM-DDThh : mm : ssTZD) 필드를 포함합니다. 이 데이터 중 일부를 Google Cloud SQL 데이터베이스로 옮기고 있으며 RFC3339 형식의 시간 데이터를 MySQL 데이터베이스에 저장할 때 모범 사례로 간주되는 것이 궁금합니다.MySQL 데이터베이스에 RFC3339 시간을 저장할 때 가장 좋은 방법은 무엇입니까?

모든 날짜와 시간 열 INT UNSIGNED NOT NULL한다, 및하여야한다 저장 UTC에서 유닉스 타임 스탬프 :

This post 강하게 다음과 같은 제안한다.

따라서 Golang's func (t Time) Unix()을 사용하고 그런 식으로 데이터를 저장해야합니까? 데이터 저장에 대한 대안 접근법은 무엇입니까? 포스터의 조언에 귀 기울이지 않으면 어떤 문제가 발생할 수 있습니까?

답변

2

go-sql-driver/mysql을 사용하는 경우 드라이버에 DATE 및 DATETIME을 자동으로 time.Tim으로 검색하도록 요청할 수 있습니다. 연결 문자열에 parseTime=true을 추가합니다.

는 참조 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)