Sql Server 数据库中,利用Sql语句实现按照生日排序

快过生日的排在最前边,排除已经过生日的成员

思路:把所有人的出生年份逻辑上改为现在的年份......





//Sql Server 利用sql语句实现按照生日排序,快过生日的排在最前边,排除已经过生日的成员
SELECT [ID],[Name],[Sex],[Birthday] FROM [dbo].[Users]
//把所有人的出生年份逻辑上改为现在的年份,提取生日未到的所有成员(排除已过生日的)
WHERE DateDiff(dd,GetDate(),(DateName(yyyy,GETDATE()) +'-'+DATENAME(month,Birthday) +'-'+ DATENAME(day,Birthday))) >=0  
//根据距离今天最近的生日排序
ORDER BY DateDiff(dd,GetDate(),(DateName(yyyy,GETDATE()) +'-'+DATENAME(month,Birthday) +'-'+ DATENAME(day,Birthday)))