我想实现下面的功能:
     
        假如这个月是1月, 我要查询相邻的5个月,网前面查询,结果为:8 9 10 11 12 1 共六个月
        
        假如这个月是7月, 则查询结果应该是 2 3 4 5 6 7  反正在当前的月份下往前面查询5个月份
 
        使用sqlserver2005系统自带的日期函数进行查询

解决方案 »

  1.   

    datediff()函数
    你要给点具体的数据+表结构
      

  2.   

    select * from tb
    where datediff(month,dt,getdate()) between 0 and 5
      

  3.   

    直接datediff(month,begindate,enddate)往前往后就吧当前日期分别赋给 enddate,begindate
      

  4.   

    --往前
    select *  from tb where datediff(month,datecolumn,getdate())<=5
    --往后
    select *  from tb where datediff(month,getdate(),datecolumn)<=5
      

  5.   

    where convert(varchar(6), 日期字段, 112) >= convert(varchar(6), dateadd(month,-4,getdate()), 112)
      

  6.   


    DECLARE @thisday datetime
    SET @thisday = GETDATE()
    SELECT * FROM [tb] WHERE [日期字段] BETWEEN DATEADD(month,-5,@thisday) AND @thisday
    日期查询很容易让大家写出不能使用索引的低效语句啊。