Field: DisplayName, StaticName and Name

When you define a custom field through the Field feature element, you have the capability to define three different attributes that declare the Name, DisplayName and StaticName of the field. You might be wondering why there are three attributes to define three kinds of names for a single field. The XML schema that defines a custom field can be used by a developer but it is also used internally by SharePoint itself to represent a Site Column. When you define a column using the web browser interface, SharePoint automatically determines the internal names (for instance, Name and StaticName) based on the name (which becomes the DisplayName) that you give it, automatically converting any non-alpha and non-numeric characters to their corresponding hexadecimal
representations, and then trimming the resulting string to 32 characters for the Name
attribute, leaving the StaticName attribute value as long as needed. If a Site Column
with the same Name already exists, SharePoint appends a number to the name, using a
zero-based index.

If you later change the DisplayName of the field, SharePoint will keep both the StaticName and the Name unchanged. That scheme gives your Site Column three different values for the three attributes: the DisplayName, the StaticName, which is simply the original DisplayName with hexadecimal conversion of non-alphanumeric characters, and the Name, with hexadecimal conversion of non-alphanumeric characters trimmed to 32 characters.

Lastly, using the SharePoint Server Object Model you can change the StaticName, but you cannot change the internal Name value. Therefore, when you have to define Site Columns using a feature
element, I suggest that you assign the Name and the StaticName the same value, avoid using non-alphanumeric characters, and provide a descriptive value for the DisplayName attribute.