我的代码最终会出现在 go-xorm
:
// formatTime format time as column type
func (engine *Engine) formatTime(sqlTypeName string, t time.Time) (v interface{}) {
switch sqlTypeName {
case core.Time:
s := t.Format("2006-01-02 15:04:05") //time.RFC3339
v = s[11:19]
case core.Date:
v = t.Format("2006-01-02")
case core.DateTime, core.TimeStamp:
v = t.Format("2006-01-02 15:04:05")
case core.TimeStampz:
if engine.dialect.DBType() == core.MSSQL {
v = t.Format("2006-01-02T15:04:05.9999999Z07:00")
} else {
v = t.Format(time.RFC3339Nano)
}
case core.BigInt, core.Int:
v = t.Unix()
default:
v = t
}
return
}
问题是,我在数据库中的实际类型是 datetime(3)
--xorm认为这只是 datetime
不过,有效地截断了我的ms精度。有办法吗?
这是我正在处理的项目中的一个基本依赖项,所以现在不使用xorm不是一个选项。
暂无答案!
目前还没有任何答案,快来回答吧!