读书人

求年月的有关问题

发布时间: 2012-02-01 16:58:19 作者: rapoo

求年月的问题
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)

读书人网 >SQL Server

热点推荐