我现在有个
数据库中有个字段放的月份(1-12整数)   我现在要查比当前月  前六个月的月份   有谁知道怎么查吗?   就是说  现在是2月 那我就要查出 1  12  11  10  9  8  月的所有记录
  在线等 

解决方案 »

  1.   

    int month;
    int[6] mon
    for(int i=0;i<6;i++)
    {
       if(month-i<=0)
       {
          mon[i]=month-i+12;
       }
       else
       {
          mon[i]=month-i;
       }
    }
    这样行不行?
      

  2.   

    zhuanshen712
      我是要写  存储过程呢!
      

  3.   

    conan304  能详细点吗~  
      

  4.   

    假设数据库字段是myDate=2select * from myTable where myDate>dateadd("m",-6,myDate)
      

  5.   


       我在描述一下  
    要写存储过程数据库中有个字段MONTH 放的月份(1-12整数)   YEAR 放年(2003...)    我现在要查比当前月     前六个月的月份       有谁知道怎么查吗?       就是说     现在是2008年2月   那我就要查出   1(2007年)     12  (2008年)    11(2008年)     10(2008年)     9 (2008年)    8(2008年)     月的所有记录
      

  6.   

    vivi8233 能说详细一点吗?  知道就清楚的告诉我下 谢谢
        我新手! 光贴一句话 我不明白
      

  7.   

    你看这样子可以不
    思路:
    先把你的Month和Year整合  转换成日期型 
    然后用dateadd
      

  8.   

    那你应该还有个字段表示年份的吧?假设年份和月份都为整数型。可以建个视图,在原表的基础上,用convert(datetime,convert(varchar,年份字段)+ convert(varchar,月份字段) + "-1") 生成个日期字段(都为当月1号)。再用SQL的日期函数筛选: where 日期字段 < dateadd(month,-1,getdate()) and 日期字段 > dateadd(month,-7,getdate()) 
      

  9.   

    SELECT * FROM 表名
    WHERE 字段名 BETWEEN 
    Month(DATEADD(month, -6, GETDATE()))
    AND 
    Month(DATEADD(month, -1, GETDATE()))
    AND 
    字段名 BETWEEN 
    year(DATEADD(month, -6, GETDATE()))
    AND 
    year(DATEADD(month, -1, GETDATE()))