我需要结果,如果end_dt
小于一个月的 15 号,它应该考虑上个月的日期
例如 - 如果end_dt
比08-May-2011
它应该考虑30-APR-2011
我使用了以下代码,但有没有更好的方法
select
id,
start_dt,
end_dt,
End_mth =
case
when end_dt<=DATEADD(YY,(DATEPART(yy,end_dt))-1900,0) + DATEADD(MM,(DATEPART(MM,end_dt))-1,0)+ 15 then month(DATEADD (mm,-1,end_dt))
else month(isnull(end_dt,'31-Mar-2012'))
end
from
sd_table