取上月数据的存储过程..请帮忙..简单.散分快
我有一字段addtime,现在需要根据这个字段来取上个月的数据,请问下存储过程里面该怎么写...
------解决方案--------------------很简单吧: 
 select * from MyTable 
 where convert(varchar(6),addtime,112)=convert(varchar(6),dateadd(month,-1,getdate()),112)
------解决方案--------------------select * from MyTable 
 where year(getdate())=year([addtime]) and month(getdate())=month(dateadd(month,-1,[addtime]))
------解决方案--------------------select * from 你的表名 where month(addtime) =month(getdate()) -1 
 --month函数是通过时间获得月份, 
 --getdate() 是取当前时间,你可以在存储过程中传入你自己的时间参数或指定时间 
 --当前六月你-1个月就是5月了 
 可以实现了否?
------解决方案--------------------楼上的不用想就是错的,2007-1-2日的上个月是2006年的,照你那样年份根本不同,查不出来了
------解决方案--------------------SELECT          addtime BETWEEN 
            DATEADD(M,-1, CONVERT(NVARCHAR(10),CAST(YEAR(GETDATE()) AS NVARCHAR(4))+ '. '+ CAST(MONTH(GETDATE()) AS NVARCHAR(2))+ '.01 ',102) ) AND 
  CONVERT(NVARCHAR(10) , 
                                         CASE WHEN   
                                                   MONTH(GETDATE())=12  
                                              THEN  
                                                   DATEADD(D,-1,DATEADD(M,-1, CAST(YEAR(GETDATE())+1 AS NVARCHAR(4))+ '.01.01 ') ) 
                                              ELSE  
                                                   DATEADD(D,-1,DATEADD(M,-1,CAST(YEAR(GETDATE()) AS NVARCHAR(4))+ '. '+ CAST(MONTH(GETDATE())+1 AS NVARCHAR(4))+ '.01 ')) END 
                    ,102)
------解决方案--------------------sorry,没说清楚,你限定下年限就ok了,~你限制下年限 
 select * from 你的表名 where month(addtime) = 
 month(getdate()) -1 and year(addtime) = '2007 ' 
 后面的年份你自己要变化的话写个变量就好了 
------解决方案--------------------不死心.   
 select * from MyTable 
 where year(getdate())=year(dateadd(month,1,[addtime])) and month(getdate())=month(dateadd(month,1,[addtime]))   
 把[addtime]加一个月与当前时间比.
------解决方案--------------------select *,year(addtime) as yr,month(addtime) as mt  into #t1 from MyTable  
 select @year=year(dateadd(month,-1,getdate())),@month=month(dateadd(month,-1,getdate())),@)   
 select * from #t1 yr=@year and mt=@month
------解决方案--------------------我的答案不行??? 
 你试过没有?