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