goxorm是否可以检测datetime(3)类型?

v09wglhw  于 2021-06-20  发布在  Mysql
关注(0)|答案(0)|浏览(231)

我的代码最终会出现在 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不是一个选项。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题