美文网首页Golanggolang
golang查询MySQL中datetime字段问题

golang查询MySQL中datetime字段问题

作者: 董泽润 | 来源:发表于2017-01-06 14:07 被阅读3319次

以前一直用 int 存储 unix 时间字段,这次和其他组交互时出现在时间问题。长话短说,这和 Python 查询 MySQL 一样,对于 datetime 默认会使用 UTC 时间,但是国内是东八区,也就是 Asia/Shanghai,需要注意时间差8小时。

beego issue441, 中有提到过,具体解决办法就是:

MySQL Golang

构建 DSN 时增加 loc 指定时区,并区增加对时间的解析。打印出来的 uri:

xiaoju:@tcp(127.0.0.1:3306)/test?charset=utf8&loc=Asia%2FShanghai&parseTime=true

后面的 parseTime 必须要有,用法如下:

row.Scan

这样就可以直接将 MySQL 中的 datetime 类型映射到 golang 中的 time.Time


参考:

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

https://github.com/astaxie/beego/issues/441

https://github.com/go-sql-driver/mysql/issues/405

https://github.com/go-sql-driver/mysql/issues/203

相关文章

网友评论

    本文标题:golang查询MySQL中datetime字段问题

    本文链接:https://www.haomeiwen.com/subject/temolttx.html