select 32-Day(getdate()-Day(getdate())+32)
流程:
设当前时间 : 2021-10-28
1.当前时间 - 当前时间的天数 = 上月末
select getdate() - Day(getdate()) -> 2021-10-28 - 28 = 2021-10-0 -> 2021-9-30
2.上月末 + (大于一个月小于两个月的天数) 33 = 当前月末 + 多出来的天数
select getdate() - Day(getdate())+33 -> 2021-9-30 + 33 = 2021-11-02 -> 2021-11-0 + 2天 -> 2021-10-31 + 2天
3. 33 - 多出来的天数 = 当前月末的天数
select 33 - Day(getdate()-Day(getdate())+32) -> 33 - 2 = 31天