Have you tried:
GetAsText ( Year ( Datefield) ) ?
With a result as text...
I also need result of the calculation in field B to be in text, because it is further going to be related to value list, where the years a written in text format.
The Year() function returns a number and there's no need to convert it to text. For the most part, it will make no difference - but text values are sorted in alphabetical order, so if you have years in the first millennium, the list might look like this:
I wasn't sure the GetAsText() was really necessary or what side effects or baggage might come along with it.
Thanks for the additional info.
GetAsText() is not necessary if the calculation result type is Text. But my point is not HOW to convert to text, but whether to convert to text at all.