the tricks though are to make the string sort by date and group correctly. I would normaly go with the string too but I was thinking that a datediff resulting in a numeric value might be easier for both of those issues as well as match the staff id type assuming it is numeric.
using a datediff('desired interval',date(1900,1,1),{table.datefield}) should result with a proper grouping as well as easy sorting ascending or descending. Youl would need a different display but that is easily handled in a number of ways.
Just a thought...