比如我在一个表里面有很多张订单,然后这些订单的日期都是零零散散的,那如果我要取一些订单是以今天起一个月以内的,要怎么去查询呢?因为有几种情况,1、假如这些订单都是在1个月以内的,那么订单时间差根本就不足30天。2、因为订单日期是零散的,我怎么取出今天起30天以内的订单呢?刚学数据库,突然想到这个问题。想问下大家是怎么解决这个问题的

解决方案 »

  1.   

    --当前月份内的  
    where datediff(mm,日期字段,getdate()) = 0
    --30天以内      
    where ABS(datediff(dd,日期字段,getdate())) < 30
      

  2.   

    问题描述的不是很清楚
    select * from t_order
    WHERE   DATEdiff (day,CREATE_TIME,getdate ())<=30
    1、假如这些订单都是在1个月以内的,那么订单时间差根本就不足30天 这个问题和你取
    今天起一个月以内的订单不会冲突吧 
      

  3.   

    问题描述的不是很清楚
    select * from t_order
    WHERE DATEdiff (day,CREATE_TIME,getdate ())<=301、假如这些订单都是在1个月以内的,那么订单时间差根本就不足30天 这个问题和你取
    今天起一个月以内的订单不会冲突吧  
      

  4.   

    大致思路:--计算今天起30天后的日期
    declare @EndData datetime
    set @EndData=DATEADD(DAY,30,GETDATE())
    --查找今天起30天内的数据
    select * from table where riqi>=GETDATE() and riqi <=@EndData
      

  5.   

    大致思路:--计算今天起30天后的日期
    declare @EndData datetime
    set @EndData=DATEADD(DAY,30,GETDATE())
    --查找今天起30天内的数据
    select * from table where riqi>=GETDATE() and riqi <=@EndData