Go言語のMySQLドライバでTIME型のカラムのデータを受け取りたいとき

YY3ai2ui24 41views 更新:2016年6月3日

dbrライブラリを使用してMySQLからTime型のデータを取ろうとしたときに正しい値が受け取れませんでした。

type Schedule struct {
  ID int
  Start string
  // Start time.Time // これだと取れない
  End string
  // End timeTime // これだと取れない
}


conn, _ := dbr.Open("mysql", "サーバーの場所", nil)
sess := conn.NewSession(nil)
var schedules = []Schedule{}
sess.Select("id, start, end").Model(&Schedule{}).Load(&schedules)

自分がやった範囲だと、TIME型の列でもstring型の値として構造体を作らないと値が受け取れないです。

“00:00:00″という文字列の形で返ってきます。

SQLを発行するときに、TIME型の列ををvarcharに変換して、CONCATで”1970-01-01 “と結合してからDATE型に変換すると、 time.Time型で受け取れると思うのですが、MySQLにあまり重い処理をさせたくないのでやめました。

なにか他にいい方法があれば教えてください。

ログイン / 新規登録してコメントする

このソースコードをストックして後で利用したり、作業に利用したソースコードをまとめることができます。

こちらもお役に立つかもしれません