我正在尝试使用标量函数配置计算列。我需要根据日期设置列状态的BIT。
CREATE FUNCTION dbo.setStatus(@StartDate datetime, @EndDate datetime)
RETURNS bit
AS
BEGIN
RETURN (@StartDate < GETDATE() && GETDATE() < @EndDate)
END
GO
我在ssms中看到符号“ <”无效的错误。
答案 0 :(得分:4)
您需要使用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
EDIT:SQL Server的逻辑AND运算符是AND
而不是&&
。我在查询中做了更改