code: func (b *builtinWeekWithoutModeSig) evalInt(row chunk.Row) (int64, bool, error) {
  	date, isNull, err := b.args[0].EvalTime(b.ctx, row)
  
  	if isNull || err != nil {
  		return 0, true, handleInvalidTimeError(b.ctx, err)
  	}
  
  	if date.IsZero() {
  		return 0, true, handleInvalidTimeError(b.ctx, types.ErrIncorrectDatetimeValue.GenWithStackByArgs(date.String()))
  	}
  
  	mode := 0
  	modeStr, ok := b.ctx.GetSessionVars().GetSystemVar(variable.DefaultWeekFormat)
  	if ok && modeStr != "" {
  		mode, err = strconv.Atoi(modeStr)
  		if err != nil {
  			return 0, true, handleInvalidTimeError(b.ctx, types.ErrInvalidWeekModeFormat.GenWithStackByArgs(modeStr))
  		}
  	}
  
  	week := date.Time.Week(mode)
  	return int64(week), false, nil
  }
docs: // evalInt evals WEEK(date).
  // see: https://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html#function_week