github.com/go-sql-driver/mysql での datetimeとtime.Timeのマッピング
db, err := sql.Open("mysql", "user:passward@/dbname?parseTime=true")
みたいな感じで、parseTime=true
を設定してやる必要がある。https://github.com/go-sql-driver/mysql/blob/v1.1/packets.go#L649
ただ、これだとdatetime->time.Timeにparseする際に標準時として行なわれるので、parseTime=true&loc=SOME_LOCATION
と、locを設定する必要がある。
古いバージョンだと、loc=Asia/Tokyo
とかをparseできないのでloc=Japan
とかって指定すると良いと思う。https://github.com/go-sql-driver/mysql/commit/7503ab8073eb37c533ac4a211e9a9f469e5cd267 でescapeしたのを渡すようになってるので、これ以降のバージョンだと locl=Asia%2FTokyo
って渡してやれば良い。
go get -u の挙動が良くわかってなくて、今まっさらな環境で go get github.com/go-sql-driver すると、v1.1が入るのに、 v1.0.2 が 入った環境で go get -u github.com/go-sql-driver してもupdateされなくて困ってる。