do all 520 tables have the DateCreated column with a default of getdate(), so that the tables can be queried individually to archive off the data as desired?
if not, you could add the column today, but if you have a backup from 6 months ago, you could restore that as a different database, and determine what is "new" in the current production database, to help define what is older.
why is it urgent? are you running out of disk space?
what happens if a parent record is 6 months old, but a child record related to the parent is 3 months old? maybe you mean just certain tables should be archived?
Lowell