Сбой сравнения дат в функции SQL - PullRequest
0 голосов
/ 08 октября 2018

Я пытаюсь настроить вычисляемый столбец, используя скалярную функцию.Мне нужно установить BIT для статуса столбца на основе дат.

CREATE FUNCTION dbo.setStatus(@StartDate datetime, @EndDate datetime)
RETURNS bit
AS
BEGIN 
  RETURN (@StartDate < GETDATE() && GETDATE() < @EndDate)
END 
GO  

Я вижу ошибку в ssms, что символ "<" недействителен. </p>

1 Ответ

0 голосов
/ 08 октября 2018

вам нужно использовать оператор CASE для проверки условия и возврата 1 или 0 соответственно

CREATE FUNCTION dbo.setStatus(@StartDate datetime, @EndDate datetime)
RETURNS bit
AS
BEGIN 
  RETURN (CASE WHEN @StartDate < GETDATE() AND GETDATE() < @EndDate THEN 1 ELSE 0 END)
END 
GO

РЕДАКТИРОВАТЬ: логический оператор И для SQL Server равен AND, а не&&.Я сделал это изменение в запросе

...