SQL 函数比较日期失败

comparing dates is failing in SQL function

我正在尝试使用标量函数配置计算列。我需要根据日期对列状态设置 BIT。

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

我在 ssms 中看到符号“<”无效的错误。

您需要使用 CASE 语句来检查条件,并相应地 return 10

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 服务器的逻辑与运算符是 AND 而不是 &&。我已经在查询中进行了更改