code: func temporalWithDateAsNumEvalType(argTp *types.FieldType) (argEvalType types.EvalType, isStr bool, isTemporalWithDate bool) {
  	argEvalType = argTp.EvalType()
  	isStr, isTemporalWithDate = argEvalType.IsStringKind(), types.IsTemporalWithDate(argTp.Tp)
  	if !isTemporalWithDate {
  		return
  	}
  	if argTp.Decimal > 0 {
  		argEvalType = types.ETDecimal
  	} else {
  		argEvalType = types.ETInt
  	}
  	return
  }
docs: // temporalWithDateAsNumEvalType makes DATE, DATETIME, TIMESTAMP pretend to be numbers rather than strings.