日期是截止至今天!
select * from employe where
(sex='女' and (select datediff(month,birday,getdate())/12)>=50)
or(sex='男' and (select datediff(month,birday,getdate())/12)>=60)
上面的这句也只截止到月这样速度好慢,优化一下!!
select 姓名,性别,出生日期 from 表
where 性别='男' and 出生日期 <= getdate() - cast( '1960-01-01' as datetime)
union all
select 姓名,性别,出生日期 from 表
where 性别='女' and 出生日期 <= getdate() - cast( '1950-01-01' as datetime)
这样比较好
select * from table
where (性别='男' and datediff(year,出生日期,getdate())>=60)
or (性别='女' and datediff(year,出生日期,getdate())>=50)
group by 性别
嫌慢的话 在“出生日期” 加索引
还有 如果数据量大的话 没必要 全部查处来的 就算你全查出来 也没人看那么多 加限制 比如 出生日期 从多久到多久的人 或者 按部门
Select *
From
(Select * ,(Case When Sex='男' And DateDiff(Year,Birthday,GetDate())>=60 And Day(Birthday) =Day(GetDate()) Then '退休'
When Sex='女' And DateDiff(Year,Birthday,GetDate())>=50 And Day(Birthday) =Day(GetDate()) Then '退休'
Else '在職'
End) As Status
From Table
) T
Where Status='退休'