最近遇到这样一个需求:
根据出生年月日查询每个人的年龄是否超龄,男性为60岁,女性为50岁。要求为超龄前一个月。
a.Gender为性别字段,1表示男,反之则是女,a.DateOfBirth表示出生日期
SELECT a.FullName, a.Gender, b.GenderName,
CONVERT(varchar(10), a.DateOfBirth, 120) AS DateOfBirth,
(case a.Gender when '1' then
(case when (dateadd(YEAR,60,a.DateOfBirth)-day(30))>getdate() then '未超龄'
when dateadd(YEAR,60,a.DateOfBirth)<getdate() then '已超龄' else '即将超龄' end)
else
(case when (dateadd(YEAR,50,a.DateOfBirth)-day(30))>getdate() then '未超龄'
when dateadd(YEAR,50,a.DateOfBirth)<getdate() then '已超龄' else '即将超龄' end)
end)as OverAge
FROM 人员表 AS a left join
性别表 as b on a.Gender=