在SQL函数中比较日期失败

时间:2018-10-08 02:17:17

标签: sql-server tsql sql-function

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

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

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

1 个答案:

答案 0 :(得分:4)

您需要使用CASE语句检查条件并相应地返回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

EDIT:SQL Server的逻辑AND运算符是AND而不是&&。我在查询中做了更改