情况下 - 我做错了什么?

Mic*_*l A 2 sql t-sql sql-server sql-server-2008

我有以下(我知道在语法上是不正确的,甚至可能是荒谬的):

and lp.lease_current_stop_date
    case when @lease_expiry_period = 01
    then
        between dateadd(MONTH, +1,
                       getdate())
    else
        between dateadd(MONTH, +2,
                       getdate())
Run Code Online (Sandbox Code Playgroud)

我只是想知道实现这个目标的最佳方法是什么?我正在尝试用以上方法做的是:

*当@lease_expiry_period等于01时,显示所有租约从现在起一个月内到期.当@lease_expiry_period等于02时,显示所有租约从现在起两个月后到期.*

表现说明

值得注意的是,为了简单起见,我没有在我的例子中截断日期.因为这是使用月份getdate()应该是:

Dateadd(d,0,datediff(d,0,getdate())) 
Run Code Online (Sandbox Code Playgroud)

为了最好的表现.

Fra*_*ila 6

AND lp.lease_current_stop_date BETWEEN getdate() AND dateadd(MONTH, @lease_expiry_period, getdate())
Run Code Online (Sandbox Code Playgroud)