В моей таблице есть столбцы даты начала и окончания, и в качестве входных данных я получаю дату начала и окончания.Мне нужно установить дату начала как TBL.StartDate, если это после даты начала INPUT, и мне нужно установить дату окончания как TBL.EndDate, если это до даты окончания INPUT.Наконец, посчитайте дни между START и END.
Я пытаюсь использовать оператор if, но не могу выполнить запрос if в запросе выбора.
Я не уверен, что это такправильный способ решения этой проблемы.
Declare @Start Date;
Declare @End Date;
Declare @INPUT_StartDate Date;
Declare @INPUT_EndDate Date;
set @INPUT_StartDate = '2019-01-01'; --user input
set @INPUT_EndDate = '2019-04-20'; --user input
select
TBL.StartDate,
TBL.EndDate,
@INPUT_StartDate,
@INPUT_EndDate,
if(TBL.StartDate < INPUT_StartDate) set @Start = TBL.STARTDate;
else set @Start = INPUT_StartDate;
if(TBL.EndDate < INPUT_EndDate) set @End = INPUT_EndDate;
else set @End = TBL.EndDate;
@DateDiff(day, @Start, @End) as COUNT
from TBL
Я ожидаю, что это сравнение произойдет, но я предполагаю, что я использую, если утверждение между запросом выбора не разрешено?
Actualрезультаты довольно много синтаксических ошибок рядом с if.