Я пытаюсь получить правильный код SQL, чтобы получить последнюю пятницу. Несколько дней назад я думал, что у меня правильный код. Но только что заметил, что он получал последнюю пятницу в пятницу, а не в прошлую пятницу. В тот день, когда я пишу этот вопрос, суббота, 8/11/2012 @12:23. В SQL Server этот код возвращается в пятницу, 8/3/2012. Тем не менее, я хочу, чтобы это вернулось в пятницу, 8/10/2012. Как я могу исправить этот код? Поскольку мы добираемся до специфики здесь, если текущий день - пятница, то я хочу вернуться сегодня. Так что если вчера (8/10/2012) и я вчера запустил этот код, я бы хотел, чтобы этот код возвращался 8/10/2012, а не 8/3/2012.
SELECT DATEADD(DAY, -3, DATEADD(WEEK, DATEDIFF(WEEK, 0, GETDATE()), 0))