Well this has nothing to do with dates really. It is just taking an encoded int and re-coding it to a string. You still can't use it as a date. But see if this works for you:select '20' + substring(convert(char(5), n), 2, 2) + upper(left(datename(month,'1900-' + right(n,2) + '-01') ,3))from ( --Your Table select 10909 n union all select 10708 union all select 11001 union all select 10212 ) doutput:2009SEP2007AUG2010JAN2002DEC
Be One with the OptimizerTG