2008年1,2,3就取 2007 四季度
2008年4,5,6就取 2008 一季度(datepart(quarter,getdate())) 取当前季度,但-1在跨年度时又不行,望指教

解决方案 »

  1.   

    select datepart(quarter,dateadd(month,-3,getdate()))
      

  2.   

    select year(dateadd(month,-3,getdate())) as year, datepart(quarter,dateadd(month,-3,getdate())) as quarter
      

  3.   

    declare @dt as datetime
    set @dt = getdate()select 
      case when datepart(quarter , @dt) > 1 then datename(year,@dt) + ' 年 ' + cast(datepart(quarter , @dt) as varchar) + ' 季度' 
           else cast(datepart(year,@dt)-1 as varchar) + ' 年 4 季度' 
    endset @dt = '2008-01-01'select 
      case when datepart(quarter , @dt) > 1 then datename(year,@dt) + ' 年 ' + cast(datepart(quarter , @dt) as varchar) + ' 季度' 
           else cast(datepart(year,@dt)-1 as varchar) + ' 年 4 季度' 
    end/*
                                                                          
    --------------------------------------------------------------------- 
    2008 年 2 季度(所影响的行数为 1 行)                                                                      
    --------------------------------------------------------------------- 
    2007 年 4 季度(所影响的行数为 1 行)
    */
      

  4.   


    declare @date datetime
    set @date='2008-01-01'
    select cast(datepart(yy,dateadd(month ,-3,@date )) as nvarchar(40))+'年'  +cast(datepart(quarter,dateadd(month,-3,@date)) as nvarchar(40))+'季度' 
      

  5.   


    declare @date datetime
    set @date='2008-02-01'select cast(datepart(yy,dateadd(month ,-3,@date )) as nvarchar(40))+'年' 
     +cast(datepart(quarter,dateadd(month,-3,@date)) as nvarchar(40))+'季度' 
    as shijian