Get previous Tuesday (or any given day of week) for specified date
i hope this will help you
SELECT DATEADD(day,- (DATEPART(dw, testdate) + @@DATEFIRST - 3) % 7,testdate) AS Saturday
from #temp
OR
SELECT DATENAME(weekday,DATEADD(day,- (DATEPART(dw, testdate) + @@DATEFIRST - 3) % 7,testdate)) +' '+
CONVERT(nvarchar,DATEADD(day,- (DATEPART(dw, testdate) + @@DATEFIRST - 3) % 7,testdate),101) AS Saturday
from @temp
OUTPUT would be in below formate
Saturday
Tuesday 10/06/2015
Remark: the whole query is just combination and calculation of DATEFIRST, DATEPART and DATEADD to manipulate a time