code: func (b *builtinUTCTimeWithArgSig) evalDuration(row chunk.Row) (types.Duration, bool, error) {
  	fsp, isNull, err := b.args[0].EvalInt(b.ctx, row)
  	if isNull || err != nil {
  		return types.Duration{}, isNull, err
  	}
  	if fsp > int64(types.MaxFsp) {
  		return types.Duration{}, true, errors.Errorf("Too-big precision %v specified for 'utc_time'. Maximum is %v.", fsp, types.MaxFsp)
  	}
  	if fsp < int64(types.MinFsp) {
  		return types.Duration{}, true, errors.Errorf("Invalid negative %d specified, must in [0, 6].", fsp)
  	}
  	var nowTs = &b.ctx.GetSessionVars().StmtCtx.NowTs
  	if nowTs.Equal(time.Time{}) {
  		*nowTs = time.Now()
  	}
  	v, err := types.ParseDuration(b.ctx.GetSessionVars().StmtCtx, nowTs.UTC().Format(types.TimeFSPFormat), int(fsp))
  	return v, false, err
  }
docs: // evalDuration evals a builtinUTCTimeWithArgSig.
  // See https://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html#function_utc-time