对于我的Python应用程序,我将生日以yyyy-mm-dd
的格式存储在数据库中,年份(yyyy
)始终是2020,所以我允许闰年日期为2月29日,这个系统对我来说运行良好.我只需要从数据库中获取月份+天数,忽略年份.然而,现在我想创建一个函数,返回即将到来的生日.
我try 了一个简单的SQL查询,像这样:
SELECT user_id, DATE_FORMAT(birthday, '%m-%d') AS upcoming_birthday
FROM birthdays
WHERE DAYOFYEAR(birthday) > DAYOFYEAR(NOW()) AND guild_id = %s
ORDER BY DAYOFYEAR(birthday);
但这并没有考虑到"年份转换",例如,如果今天的日期是12月15日,而下一个生日是在1月,它不会返回任何东西,因为DAYOFTHEYAR较小.
我将如何创建始终准确返回下一个生日的SQL查询或Python函数?