我希望从我的 MySQL 数据库中提取记录,其中出生日期 (dob) 的 DAY 介于现在和 XX 天之间。例如,显示从现在到 15 天之间的所有生日。我正在使用下面的公式,直到今天的日期接近月底。所以,如果今天是 6 月 1 日,我想提取从现在到 15 天之间的所有生日......它工作正常。但如果今天是 6 月 25 日,则表示没有找到任何记录,因为 15 天的结束是在另一个月份。
SELECT contacts._id FROM `contacts` LEFT JOIN `groups` ON groups._id = "2"
WHERE (DAY(`dob`) BETWEEN DAY(CURDATE())
AND DAY(ADDDATE(CURDATE(), INTERVAL 15 DAY))
AND MONTH(`dob`) BETWEEN MONTH(CURDATE())
AND MONTH(ADDDATE(CURDATE(), INTERVAL15 DAY))
我也尝试过使用类似下面的代码,但它不适用于 DOB 数据,因为永远不会找到当前年份之前的年份。因此,年份必须忽略。
SELECT contacts._id FROM `contacts` LEFT JOIN `groups` ON groups._id = "2"
WHERE dob BETWEEN CURDATE() AND CURDATE() + 15
日期在数据库中存储为 2012-08-27、1982-06-18、1963-07-26 等。我只对 MONTH-DAY 信息感兴趣。