想要一条语句,查询离今天最近15号到今天的数据
比方说今天5号,条件里就是上个月15号到今天5号的数据
如果今天是20号,就查这个月15号到今天20号这5天的数据

解决方案 »

  1.   

    select * from tb where datediff(dd,日期字段,getdate()) between 0 and 14
      

  2.   

    declare @t datetime
    set @t=getdate()
    if day(@t)>15
    select * from tb where 时间字段 between dateadd(mm,-1,convert(varchar(7),@t,120)+'15') and @t
    else
    select * from tb where 时间字段 convert(varchar(7),@t,120)+'15' and @t
      

  3.   

    declare @t datetime
    set @t=getdate()
    if day(@t)>15
    select * from tb where 时间字段 between dateadd(mm,-1,convert(datetime,convert(varchar(8),@t,120)+'1')) and @t
    else
    select * from tb where 时间字段 between convert(datetime,convert(varchar(8),@t,120)+'1')and @t--试试这个
      

  4.   

    declare @t datetime
    set @t=getdate()
    if day(@t)>15
    select * from tb where 时间字段 between dateadd(mm,-1,convert(datetime,convert(varchar(8),@t,120)+'15')) and @t
    else
    select * from tb where 时间字段 between convert(datetime,convert(varchar(8),@t,120)+'15')and @t--应该是15
      

  5.   

    本帖最后由 josy 于 2012-07-05 13:51:03 编辑
      

  6.   

    declare @endDate datetime=getdate(),@startDate datetime
    select top 1 @startDate=日期字段 from dt 
        where DAY(日期字段)=15 and 日期字段<@endDate order by 日期字段 desc
    select * from dt where 日期字段 between @startDate and  @endDate