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