select datediff(year,Birthday,getdate()) from 表 where datediff(year,Birthday,getdate())>=18
select *,case when datediff(year,Birthday,getdate())>=18 then '是' else '否' end as [成人] from 表
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
select case when datediff(day,dateadd(year,18,出生日期),getdate())>=0 then '已经满18岁' else '未满18岁' end from 人员信息表
如何根据出生日期计算算精确年龄? 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
where datediff(year,Birthday,getdate())>=18
when month(dtRegister)=month(getdate()) and day(dtRegister)<=day(getdate())
then datediff(year,dtRegister,getdate())+1
else
datediff(year,dtRegister,getdate())
end
from smMember
then '已经满18岁' else '未满18岁' end
from 人员信息表
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