本月15日之前/之后

时间:2014-06-25 20:44:11

标签: sql-server days

我想自动设置@startdate和@enddate,具体取决于查询是在每月的第15天之前还是之后运行。

select case @startdate when DAY(getdate())>15 -- etc.

但它不喜欢> 15或= 15的语法。我知道DAY()返回一个整数(今天的结果是25),所以我不知道为什么这不起作用。

1 个答案:

答案 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