查询MySQL数据表中的datetime
类型字段时,通常涉及时间类型转换
的问题。
实际业务中,有两类转换。假定在数据表中字段created
,login_time
是datetime
类型,在Go中我们需要转换成,
string
类型(Y-m-d H:i:s)
的时间int64
类型(timestamp)
的时间
/**
* 1. 配置数据库日期转换
* loc 定义数据库所在时区 东八区
* parseTime 转换日期类型
**/
database, err = sql.Open("mysql", "root:123456@tcp(127.0.0.1:3306)/aa?charset=utf8&loc="+ url.QueryEscape("Asia/Shanghai") +"&parseTime=true")
var TaskCreated time.Time // 2. 定义一个Time类型的变量
getTasksql = "select created from task;"
rows, err := database.Query(getTasksql)
for rows.Next() {
err := rows.Scan(&TaskCreated)
// 3. 将Time类型的时间格式化成`string`类型(Y-m-d H:i:s)
TaskCreated.Format("2006-01-02 15:04:05")
// 或3. 将Time类型的时间格式化成`int64`类型(timestamp)
TaskCreated.Unix()
}