As Peeyush Pachaori has suggested I would too use Sql Agent's Job for this task.
In order to delete records from tables you must keep track of insertion/update for every record, cascade deletion could be handy as well.
deletion code:
DELETE FROM MyTable
WHERE LastUpdateTime < @requiredDate
code for diff backup:
BACKUP DATABASE [DBName] TO DISK = N'Backup_Path'
WITH DIFFERENTIAL , NOFORMAT, NOINIT,
NAME = N'DBName-Differential Database Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10
GO
I hope this helps.