要显示最近一个月的时间范围的数据,这个时间范围的搜索条件用sql语句怎么写?

解决方案 »

  1.   

    dt是你的日期字段,先了解下DATEDIFF函数
      

  2.   

    dt是你的日期字段,先了解下DATEDIFF函数
      

  3.   

    select convert(varchar(10),DATEADD(d,-number,getdate()),120)dt 
    from master..spt_values 
    where type='p' and number<31 and DATEADD(d,-number,getdate())>CONVERT(varchar(10),dateadd(m,-1,getdate()),101)
    order by 1
    /*
    dt
    ----------
    2011-08-23
    2011-08-24
    2011-08-25
    2011-08-26
    2011-08-27
    2011-08-28
    2011-08-29
    2011-08-30
    2011-08-31
    2011-09-01
    2011-09-02
    2011-09-03
    2011-09-04
    2011-09-05
    2011-09-06
    2011-09-07
    2011-09-08
    2011-09-09
    2011-09-10
    2011-09-11
    2011-09-12
    2011-09-13
    2011-09-14
    2011-09-15
    2011-09-16
    2011-09-17
    2011-09-18
    2011-09-19
    2011-09-20
    2011-09-21
    2011-09-22(31 行受影响)
    */
      

  4.   

    就是这样的  getdate()指的是今天 DD代表天 DATEDIFF是天数的差值
      

  5.   

    select convert(varchar(10),DATEADD(d,number,getdate()),120)dt 
    from master..spt_values 
    where type='p' and number<31 and DATEADD(d,number,getdate())<CONVERT(varchar(10),dateadd(m,1,getdate()),101)
    order by 1
    /*
    dt
    ----------
    2011-09-22
    2011-09-23
    2011-09-24
    2011-09-25
    2011-09-26
    2011-09-27
    2011-09-28
    2011-09-29
    2011-09-30
    2011-10-01
    2011-10-02
    2011-10-03
    2011-10-04
    2011-10-05
    2011-10-06
    2011-10-07
    2011-10-08
    2011-10-09
    2011-10-10
    2011-10-11
    2011-10-12
    2011-10-13
    2011-10-14
    2011-10-15
    2011-10-16
    2011-10-17
    2011-10-18
    2011-10-19
    2011-10-20
    2011-10-21(30 行受影响)
    */
      

  6.   


    时间字段OperateTime应该放在这句sql里面的哪里?
      

  7.   

    select * from tablename where abs(datediff(mm,date,getdate()))<=1
      

  8.   


    select * from tablename where datediff(mm,date,getdate())<=1--tablename是表名
    --date是你的时间字段
    --getdate()是系统自带函数,取到你执行语句的时间