code: func (t Time) Convert(sc *stmtctx.StatementContext, tp uint8) (Time, error) {
  	if t.Type == tp || t.IsZero() {
  		return Time{Time: t.Time, Type: tp, Fsp: t.Fsp}, nil
  	}
  
  	t1 := Time{Time: t.Time, Type: tp, Fsp: t.Fsp}
  	err := t1.check(sc)
  	return t1, errors.Trace(err)
  }
docs: // Convert converts t with type tp.