我期待拉記錄從我的MySQL數據庫,其中日期的出生的(DOB)的日子現在XX很多天了。例如,顯示從現在起至15天之間的所有生日。我使用下面的公式,直到今天的日期更接近月底。所以,如果今天是6月1日,並且我想從現在到15天之間拉出所有的生日......它可以正常工作。但是如果今天是6月25日,那麼會說15天的結束是在另一個月內沒有記錄。顯示MySQL的出生日期記錄從現在XX天
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年8月27日,1982年6月18日,1963年7月26日,等我只是在月 - 日的信息感興趣。
這就是問題所在。如果我使用CURDATE()類型的查詢,它將不會提取比今天更早的任何日期。因此,例如,1984-02-02將永遠不會在今天和任何未來的日期之間......除非我能夠剝奪年。 – Neon
哎呀。嘗試WHERE SUBSTR(date_col的,6,5)之間SUBSTR(CURDATE(),6,5)和SUBSTR(DATE_ADD(CURDATE(),間隔15天),6,5) – Kermit
良好的漁獲!它現在完美。謝謝! – Neon