CHAITANYA BASAVA KUMAR Ответов: 1

Как я могу узнать значение рекуррентности в sqlserv


Я должен вставить значение 1 или 0 в столбец оно основано на значении повторения между 2 датами

У меня есть 2 даты дата начала и дата окончания, и я предоставляю значение повторения(если оно равно 1, то оно должно учитывать каждый день, если оно равно 2, то оно должно учитывать альтернативные даты, такие как мудрый). как я могу знать, что сегодня-это дата, которую нужно рассмотреть

позвольте мне четко сказать, что моя дата начала-20-06-2018, а дата окончания-где-то в июле.
сегодня я получу 1 или 0, если дам интервал повторения 3

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

Я попробовал ниже

select PARSENAME((DATEDIFF(ww, '2018-06-25',CONVERT(DATE,GETDATE()))/3),1)

select PARSENAME((DATEDIFF(day, '2018-06-20',CONVERT(DATE,GETDATE()))/2),1)

1 Ответов

Рейтинг:
4

Richard Deeming

Если я понял, о чем вы просите, что-то вроде этого должно сработать:

DECLARE @Today date = GetDate();
DECLARE @StartDate date = '20180620';
DECLARE @EndDate date = '20180701';
DECLARE @RecurEveryDays int = 3;

SELECT CASE
    WHEN @Today < @StartDate THEN CAST(0 As bit)
    WHEN @Today > @EndDate THEN CAST(0 As bit)
    WHEN (DateDiff(day, @StartDate, @Today) % @RecurEveryDays) != 0 THEN CAST(0 As bit)
    ELSE CAST(1 As bit)
END;
% (Модуль) (Transact-SQL) | Microsoft Docs[^]


CHAITANYA BASAVA KUMAR

Привет Ричард,

Спасибо, он работает, как и ожидалось...