Member 12965461 Ответов: 2

Как получить дату пятницы, если я выполняю запрос в понедельник?


ВЫБИРАТЬ
сдомен.SalesOrg ,
sdomain.Идентификатор,
сдомен.Фаза,
Сдомен.InitiationDate как " CASOrderStartTime"
От
SDOMAIN
ГДЕ
SdoMain.Статус&ЛТ;&ГТ;'д'
и сдомен.InitiationDate<=Getdate()-1
и сдомен.Фаза in ('Submitted', 'OnRoute')

заказ по sdomain.InitiationDate

Что я уже пробовал:

В приведенном выше запросе я хочу получить результат за одну дату до сегодняшней даты.Поэтому я использовал InitiationDate<=Getdate () -1 .Но в понедельник я хочу взять дату пятницы (предположим, сегодня 27 февраля, 17, то есть понедельник,и я хочу, чтобы этот запрос взял дату пятницы, то есть(24 февраля, 17).Есть ли какая-то функция или какой-то способ, как я могу это сделать??
Пожалуйста, помогите как можно скорее/
Заранее спасибо!!!

2 Ответов

Рейтинг:
20

Peter Leow

Попробовать это:

declare @date datetime;
select @date =
case
   when datepart(weekday, getdate()) = 2 then getdate()-3
   else getdate() - 1
end;
select @date
DATEPART (Transact-SQL)[^]


CHill60

4. я думаю, вам нужно использовать -3 и -1, чтобы правильно соответствовать требованиям ОП?

Peter Leow

Спасибо. Это была моя оплошность. Исправленный.

CHill60

Обновлено голосование до 5!

Peter Leow

Спасибо.

Member 12965461

Спасибо всем за вашу помощь.
Это сработало.

Peter Leow

Добро пожаловать. Вы отметите это как ответ?

Рейтинг:
2

Patrice T

Цитата:
Как получить дату пятницы, если я выполняю запрос в понедельник?

Я не понимаю вашей проблемы.
Вы уже знаете, как перейти к предыдущему дню, с Getdate()-1, он же с сегодняшнего дня 27-й, вы проверяете 26-й.
И вы задаетесь вопросом, с сегодняшнего дня 27, вы проверяете 24, вы не можете сосчитать до 3 и получить Getdate()-3 ?