我想自动设置@startdate和@enddate,这取决于查询是在每月的第15天之前还是之后运行。
select case @startdate when DAY(getdate())>15 -- etc.
,但它不喜欢>15或=15的语法。我知道DAY()返回一个整数(今天的结果是25),所以我不知道为什么它不起作用。
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