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