SQL当月、上月、下月、上年同月、下年同月的另一种写法

发布时间 2023-11-29 13:44:52作者: djd66

declare @kjqj varchar(10)--格式必须是四位年份+两位月份,不如202302是2023年2月
declare @sumyf int
declare @ys int --月数 0 当前月 大于0 向后+几个月 小于0向前+几个月 都含给定月份
set @kjqj='202301'--当前月份
set @ys=0--当月0,上月-1 下月1 上年同月 -12 下年同月 12
set @sumyf=CAST(left(@kjqj,4) as int) * 12 + RIGHT(@kjqj,2) + @ys - 1
select CAST(@sumyf / 12 as varchar(4)) + RIGHT('00' + CAST(@sumyf % 12 + 1 as varchar(2)),2)

返回值格式相同 202312