求年月的问题
gzyear char(4) --存放4位的年份 如2007 1997
gzmonth char(2) --存放月份 如7 12
如何根据从表中取出gzmonth的值+1或-1呢?
假如取出gzyear ,gzmonth的值为 2007 ,8
那么 gzmonth+1 即 8+1 = 9 ,gzyear 仍为 2007
如果 取出gzyear ,gzmonth的值为 2007 ,12
那么 gzmonth+1 即 12+1 = 1 ,gzyear 则改为 2008
减1类同上面.
1\这样如何写语句呢?
2\另外要正确排序 order by gzyear ,gzmonth(这样写不对,因为gzmonth中10是排在2的前面)应该如何写呢?
------解决方案--------------------declare @a char(4)
declare @b char(2) --存放月份 如7 12
select @a= '2007 ',@b= '12 '
select @a=ltrim(year(dateadd(mm,1,@a+ '- '+@b+ '- '+ '01 '))),@b=ltrim(month(dateadd(mm,1,@a+ '- '+@b+ '- '+ '01 ')))
select @a,@b
------------------
order by gzyear,right( '0 '+gzmonth,2)