如何查询按生日排序而不考虑年份的查询?我需要在ASC或DESC中删除/忽略从今天日期开始的年份和按生日、月份和生日日期排序。
下面的不起作用,因为出生日期的年份起作用了。下面的示例展示了当考虑年份时会发生什么:
John 01/02/1974
Billy 11/15/2000
Ally 06/25/2008
SELECT * FROM users ORDER BY birthdate按生日排序时的预期结果:
John 01/02/1974
Ally 06/25/2008
Billy 11/15/2000发布于 2012-06-27 02:02:04
这将使所有日期标准化为2000年:
ORDER BY DATEADD(YEAR, 2000-YEAR(birthday), birthday);这将正确地处理闰年的婴儿。
发布于 2012-06-27 01:55:12
编辑:@AaronBertrand的评论是正确的,day-of-year不适用于闰年。你可以用他的解决方案。另一种方式是按月和按天排序,例如:
SELECT * FROM users ORDER BY month(birthdate), day(birthdate)发布于 2012-06-27 01:56:16
试一试
SELECT * FROM users ORDER BY SUBSTRING(birthdate, 1, 5);https://stackoverflow.com/questions/11213161
复制相似问题