现在要写一个提示查询,在每个人生日前两天提示,也就是在每个人生日前两天查询表,现在查询条件是在生日日期的前两天,查询相应的生日日期 如 1980-10-01的生日,在09-29当天的时候,查询所有10-01出生的人,怎么写条件啊

解决方案 »

  1.   

    select 
          * 
    from 
         tablename 
    where datediff(dd,cast(rtrim(datepart(yy,getdate()))+'-'+
                        rtrim(datepart(mm,表里日期字段))+'-'+
                        rtrim(datepart(dd,表里日期字段)) as datetime),getdate())=2
      

  2.   

    现在要写一个提示查询,在每个人生日前两天提示,也就是在每个人生日前两天查询表,现在查询条件是在生日日期的前两天,查询相应的生日日期 如 1980-10-01的生日,在09-29当天的时候,查询所有10-01出生的人,怎么写条件啊
    -------------------------------------
    select * from tb where datediff(day,getdate(),cast(cast(year(getdate()) as varchar) + right(convert(varchar(10),生日,120),6) as datetime)) = 2
      

  3.   

    select * from 表 where dateadd(day,2,getdate())=生日字段
      

  4.   

    create function dd(@dt datetime,@gt datetime)
    returns varchar(50)
    as
    begin
    declare @sql varchar(50)
    if((datepart(mm,@dt)=datepart(mm,@gt)) and (datepart(dd,@dt)+2=datepart(dd,@gt)))
    set @sql='您的生日到了'
    else
    set @sql='您的生日还远着呢'
    return @sql
    end
    --调用函数
    select dbo.dd('1984-9-23',getdate()) --返回:您的生日还远着呢
    select dbo.dd('1984-9-24',getdate()) --返回:您的生日到了
      

  5.   

    不好意思。那个函数要改一下。有点疏忽了`
    create function dd(@dt datetime,@gt datetime)
    returns varchar(50)
    as
    begin
    declare @sql varchar(50)
    set @dt=dateadd(dd,2,@dt)
    if((datepart(mm,@dt)=datepart(mm,@gt)) and (datepart(dd,@dt)=datepart(dd,@gt)))
    set @sql='您的生日到了'
    else
    set @sql='您的生日还远着呢'
    return @sql
    end
      

  6.   

    噢,楼主原来是想得到那些人啦`那改下:
    alter function dd(@dt datetime,@gt datetime)
    returns varchar(50)
    as
    begin
    declare @sql int
    set @dt=dateadd(dd,2,@dt)
    if((datepart(mm,@dt)=datepart(mm,@gt)) and (datepart(dd,@dt)=datepart(dd,@gt)))
    set @sql=1
    return @sql
    end
    create table ff(id int,name varchar(50),brithday datetime)
    insert into ff select 1,'wsp','1984-09-12'
    insert into ff select 2,'w','1984-09-24'
    insert into ff select 3,'s','1984-09-25'
    insert into ff select 4,'p','1984-09-24'select name from ff where dbo.dd(brithday,getdate())=1