我在postgres数据库中有一个带有dob(出生日期)字段的用户表。
我想写一个查询,将检索接下来的五个即将到来的生日。我认为需要考虑以下几点 -
类似的问题已在SO上提出,但most甚至没有接受答案。谢谢。
答案 0 :(得分:1)
嗯,这已经失败了很多。但无论如何,我会发布我的回答。其中一个答案帮助我找到了最终解决方案,并且其所有者出于某种原因删除了该答案。
无论如何,这个查询完美无缺。它提供了接下来的5个即将到来的生日以及日期。
t1
答案 1 :(得分:0)
您可以查看dob的一年中的某一天,并与当前日期的doy进行比较:
SELECT doy
, extract(doy from dob) - extract(doy from current_date) as upcoming_bday
FROM users
WHERE extract(doy from dob) - extract(doy from current_date) >= 0
order by 2
limit 5