go-admin icon indicating copy to clipboard operation
go-admin copied to clipboard

[Question]对于时间戳格式的数据库字段如何转换为日期格式

Open moon-hzq opened this issue 5 years ago • 3 comments

问题描述 [详细地描述问题,让大家都能理解]

当前,有一数据表中包含add_time字段,格式为bigint,按照时间戳进行存储的,如:1603963075 而在数据表格中,需要使用到日期格式,如:2020-10-29 17:00,请问如何进行转换,我尝试通过 FieldDisplay方法进行转换,但觉得这不是最好方案,要么在数据库查询的时候使用 FROM_UNIXTIME 函数转换

扩展问题:同理,如果我想对查询的数据字段进行一些额外的sql语句处理,请问有其他什么方法吗,谢谢

示例代码 [如果有必要,展示代码,线上示例,或仓库]

info.AddField("Create_time", "create_time", db.Int).
		FieldDisplay(func(value types.FieldModel) interface{} {
			//转换时间戳格式
			rv := ChangeToData(value.Value)
			return rv
		})

其他信息 [如截图等其他信息可以贴在这里]

moon-hzq avatar Oct 29 '20 09:10 moon-hzq

Q2: 扩展问题:同理,如果我想对查询的数据字段进行一些额外的sql语句处理,请问有其他什么方法吗,谢谢 A2: info := userTable.GetInfo().Where("bid", "=", 2)

Lifelong-Study avatar Oct 30 '20 14:10 Lifelong-Study

Q2: 扩展问题:同理,如果我想对查询的数据字段进行一些额外的sql语句处理,请问有其他什么方法吗,谢谢 A2: info := userTable.GetInfo().Where("bid", "=", 2)

我的意思是指类似这样的语句:select id,name,FROM_UNIXTIME(time) as date from a where id = 1; FROM_UNIXTIME(time) as date 使用到了 mysql 的将时间戳转换为日期格式的函数,这种需要怎么办?

moon-hzq avatar Nov 02 '20 11:11 moon-hzq

Q2: 扩展问题:同理,如果我想对查询的数据字段进行一些额外的sql语句处理,请问有其他什么方法吗,谢谢 A2: info := userTable.GetInfo().Where("bid", "=", 2)

我的意思是指类似这样的语句:select id,name,FROM_UNIXTIME(time) as date from a where id = 1; FROM_UNIXTIME(time) as date 使用到了 mysql 的将时间戳转换为日期格式的函数,这种需要怎么办?

反过来可以用SetQueryFileterFn函数进行过滤处理, 如:

info.SetQueryFilterFn(func(param parameter.Parametersm, conn db.Connection) (ids []string, stopQuery bool) {
      param.Fields["edit_timestamp_start__goadmin"] = []string{strconv.FormatInt(1603963075, 10)}
      return []string{}, true
}

shuten avatar Nov 03 '20 03:11 shuten