minor point... maybe to get the records - but not to sort them since you're performing a calculation (charindex / left / datename) on the fly.
i'd stick with the datepart solution.
Ya know -- I'm noticing people are inventing solutions in these forums to problems they've created.