使用mysql的时间字段遇到如下两个问题
- 使用go-sql-driver来连接mysql数据库,获取的时区默认是UTC +0的,与本地的东八区是有区别,在业务处理中会出现问题
- 获取mysql中的日期,是string类型,需要在代码中用time.Parse进行转化
解决方案:
在连接的dsn中,添加parseTime=true 和loc=Local,此处的local可以换为具体的时区(Asia/Shanghai)
func GetMySqlPoll() *sql.DB{
if db != nil{
return db
}
db, err := sql.Open("mysql", "root:davidmaqq0@tcp(127.0.0.1:3306)/miaoshadb?charset=utf8&parseTime=true&loc=Local")//3306是mysql的默认端口号
checkError(err)
err = db.Ping()
if err != nil{
panic(err)
}
//连接池中的最大链接数
db.SetMaxOpenConns(100)
//连接池中的最大空闲链接数
db.SetMaxIdleConns(30)
return db
}
package dao
import (
"miaosha/src/entity"
"time"
)
func GetUserByMobile(mobile string) *entity.UserInfo {
db := GetMySqlPoll()
sql := "select distinct mobile,ni