一个表,有编号No,姓名name,生日Birthday三个列,要求:列出下个月过生日的员工的名字,谢谢

解决方案 »

  1.   

    select * 
    from tb 
    where datediff(mm,Birthday,dateadd(mm,1,getdate))=0
      

  2.   

    select * from tb where month(dateadd(mm,1,getdate())) = month(birthday)
      

  3.   


    select * from 表 where dateadd(mm,1,getdate())=生日
      

  4.   

    select name from [Table] where month(Birthday)=month(dateadd(m,1,getdate())
      

  5.   

    --查询某日期段之间的生日(考虑跨年 )
    DECLARE @STARTTIME DATETIME      
    SET @STARTTIME='开始日期'     
    DECLARE @ENDTIME DATETIME      
    SET @ENDTIME='截止日期'       
    SELECT *    
    FROM TB    
    WHERE (DATEADD(YEAR,DATEDIFF(YEAR,BIRTHDAY,@STARTTIME),BIRTHDAY) BETWEEN @STARTTIME    
           AND CASE WHEN DATEDIFF(YEAR,@STARTTIME,@ENDTIME)=0    
               THEN @ENDTIME    
               ELSE DATEADD(YEAR,DATEDIFF(YEAR,'19001231',@STARTTIME),'19001231')      
           END)    
       OR (DATEADD(YEAR,DATEDIFF(YEAR,BIRTHDAY,@ENDTIME),BIRTHDAY) BETWEEN    
           CASE WHEN DATEDIFF(YEAR,@STARTTIME,@ENDTIME)=0    
                THEN @ENDTIME      
                ELSE DATEADD(YEAR,DATEDIFF(YEAR,'19000101',@ENDTIME),'19000101')    
            END AND @ENDTIME)   
      

  6.   

    select name from tb where month(Birthday)=month(dateadd(mm,1,getdate())
      

  7.   

    select name from tb where month(Birthday)=month(dateadd(mm,1,getdate()))
      

  8.   

    select * from tb where month(dateadd(m,1,getdate()))=month(Birthday)
      

  9.   

    select * 
    from tb 
    where datediff(mm,Birthday,dateadd(mm,1,getdate))=0