I’m trying to get the most recent Friday in SQL Server 2008.
I have this. It gets the beginning of the week (monday) then subtracts 3 days to get Friday.
declare @recentFriday datetime = DATEADD(ww, DATEDIFF(dd,0,GETDATE()), 0)-3
When this is run during the week, it gets last Friday’s date which is correct. But when run on Friday (or Saturday), it still gets last week’s date instead of the current week’s Friday. I’m about to use if/else conditions but I’m sure there’s an easier way.
This works for any input and any setting of
DATEFIRST:It works by adjusting the weekday value so that 0 = Friday, simulating Friday as the beginning of the week. Then subtract the weekday value if non-zero to get the most recent Friday.
Edit: Updated to work for any setting of
DATEFIRST.