我想自动设置@startdate和@enddate,具体取决于查询是在每月的第15天之前还是之后运行。
select case @startdate when DAY(getdate())>15 -- etc.
但它不喜欢> 15或= 15的语法。我知道DAY()返回一个整数(今天的结果是25),所以我不知道为什么这不起作用。
答案 0 :(得分:1)
CASE
结构有两种形式。你要么
CASE expression
WHEN value THEN result
WHEN value THEN result
...
ELSE
END
否则你有
CASE
WHEN boolean-expression THEN result
WHEN boolean-expression THEN result
ELSE
END
在您的问题中,您需要第二个表单。这是你想要的:
SELECT @startdate = CASE WHEN DAY(getdate())>15 THEN ... ELSE ... END