func (d *Datum) compareMysqlTime(time mysql.Time) (int, error) { switch d.k { case KindString, KindBytes: dt, err := mysql.ParseDatetime(d.GetString()) return dt.Compare(time), err case KindMysqlTime: return d.GetMysqlTime().Compare(time), nil default: fVal, _ := time.ToNumber().ToFloat64() return d.compareFloat64(fVal) } }