在Golang中,可以使用time.Time类型来表示MySQL的timestamp字段。要将时间格式化为"yyyy-mm-dd hh:ii:ss"的格式,可以使用time.Time的Format方法。下面是一个示例代码,演示了如何使用xgorm查询MySQL的timestamp字段,并将结果以"yyyy-mm-dd hh:ii:ss"的格式返回为JSON。

package main

import (
	"encoding/json"
	"fmt"
	"time"

	"gorm.io/driver/mysql"
	"gorm.io/gorm"
)

type User struct {
	ID        uint           `gorm:"primary_key"`
	Name      string         `json:"name"`
	CreatedAt time.Time      `json:"created_at"`
	UpdatedAt time.Time      `json:"-"`
	DeletedAt gorm.DeletedAt `gorm:"index" json:"-"`
}

func main() {
	dsn := "user:password@tcp(localhost:3306)/dbname?charset=utf8mb4&parseTime=True&loc=Local"
	db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})
	if err != nil {
		panic(err)
	}

	var users []User
	if err := db.Find(&users).Error; err != nil {
		panic(err)
	}

	for _, user := range users {
		user.CreatedAt = user.CreatedAt.Local() // 转换为本地时间
	}

	jsonBytes, err := json.MarshalIndent(users, "", "  ")
	if err != nil {
		panic(err)
	}

	fmt.Println(string(jsonBytes))
}

在上面的代码中,我们首先定义了一个User结构体,其中CreatedAt字段的类型为time.Time,用于表示MySQL的timestamp字段。然后,我们使用gorm进行数据库查询,并将查询结果保存在users切片中。

接下来,我们遍历users切片,使用Local()方法将CreatedAt转换为本地时间。然后,我们使用json.MarshalIndent将users切片转换为JSON格式的字节数组。

最后,我们使用fmt.Println打印JSON字符串。

请注意,上述代码中的dsn变量应替换为您自己的MySQL连接字符串

golang mysql的字段类型为timestamp xgorm查询的结果如何返回json格式为 yyyy-mm-dd hhiiss。提供一个最优雅最高效的方法

原文地址: https://www.cveoy.top/t/topic/iEvX 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录