首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按生日排序,不考虑年份

按生日排序,不考虑年份
EN

Stack Overflow用户
提问于 2012-06-27 01:53:14
回答 4查看 4.4K关注 0票数 5

如何查询按生日排序而不考虑年份的查询?我需要在ASC或DESC中删除/忽略从今天日期开始的年份和按生日、月份和生日日期排序。

下面的不起作用,因为出生日期的年份起作用了。下面的示例展示了当考虑年份时会发生什么:

代码语言:javascript
复制
John   01/02/1974
Billy  11/15/2000
Ally   06/25/2008

SELECT * FROM users ORDER BY birthdate

按生日排序时的预期结果:

代码语言:javascript
复制
John   01/02/1974
Ally   06/25/2008
Billy  11/15/2000
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-06-27 02:02:04

这将使所有日期标准化为2000年:

代码语言:javascript
复制
ORDER BY DATEADD(YEAR, 2000-YEAR(birthday), birthday);

这将正确地处理闰年的婴儿。

票数 4
EN

Stack Overflow用户

发布于 2012-06-27 01:55:12

编辑:@AaronBertrand的评论是正确的,day-of-year不适用于闰年。你可以用他的解决方案。另一种方式是按月和按天排序,例如:

代码语言:javascript
复制
SELECT * FROM users ORDER BY month(birthdate), day(birthdate)
票数 6
EN

Stack Overflow用户

发布于 2012-06-27 01:56:16

试一试

代码语言:javascript
复制
SELECT * FROM users ORDER BY SUBSTRING(birthdate, 1, 5);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11213161

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档