go-xorm可以检测DATETIME(3)类型吗?

时间:2018-06-15 22:45:49

标签: mysql database go

我的代码最终会在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是一种选择。

0 个答案:

没有答案