SQL:要在表中生成跨年year如何写?

比如表
year month
2015 12
结账生成表插入
year month
2016 1

我想做一个功能,结账自动跳月,平时是month+1,但是如果是12月,那这时候年也要+1,且月份自动变为1,我想用if month=12 做判断可以,但想请教有没有直接的sql能写出来

insert into Y(A,B) select
case B when 12 then A+1 end
,B + 1 from X

把A当成年份,B当成月份

一般数据库都有dateadd函数,那个自动累进的。

结合case when吧

  1. dateadd 在向指定日期加上一段时间的基础上,返回新的 datetime 值 例如:向日期加上2天 select dateadd(day,2,'2004-10-15') --返回:2004-10-17 00:00:00.000 你说的需要,在插入的时候选择插入以下两个内容就可以了, insert into 表名 (year ,month)values( year(dateadd(month,1,getdate())) , month(dateadd(month,1,getdate())) )

select dateadd(MONTH,1,'2004-11-30') 结果:2004-12-30 00:00:00.000
select dateadd(MONTH,2,'2004-11-30') 结果:2005-01-30 00:00:00.000