select datediff(year,dtBirthday,getdate()) from 表

解决方案 »

  1.   

    select datediff(year,Birthday,getdate()) from 表
    where datediff(year,Birthday,getdate())>=18
      

  2.   

    select *,case when datediff(year,Birthday,getdate())>=18 then '是' else '否' end as [成人] from 表
      

  3.   

    select [Age]=case
    when month(dtRegister)=month(getdate()) and day(dtRegister)<=day(getdate())
    then datediff(year,dtRegister,getdate())+1
    else
    datediff(year,dtRegister,getdate())
    end
     from smMember
      

  4.   

    select case when datediff(day,dateadd(year,18,出生日期),getdate())>=0
    then '已经满18岁' else '未满18岁' end
    from 人员信息表
      

  5.   

    如何根据出生日期计算算精确年龄?
    declare @Birthday smalldatetime
    set @Birthday ='1949-6-5'
    --set @Birthday =getdate()
    select (datediff(year,@Birthday,getdate()) 
           + case when dateadd(year,datediff(year,@Birthday,getdate()),@Birthday) <= getdate() 
                       then 1 
                  else 0 
             end)select * 
    from 人员信息表 
    where (datediff(year,出生日期,getdate()) 
      + case when dateadd(year,datediff(year,出生日期,getdate()),出生日期) <= getdate() 
             then 1 
        else 0 end) > 18