我需要从表中找到人们的生日……从今天起接下来的 7 天。我有一个查询 .. SELECT * FROMtable WHEREdobLIKE BETWEEN %-08-17 AND %-08-24但它返回日期未在数据库中提交的记录..我的意思是条目是 0000-00-00 我已经将生日以日期格式存储在表中。请帮我找到错误。
由于这是 mysql,我不知道DATE_FORMAT() 是否可以解决此问题。但是试试这个。
SELECT * FROM users WHERE DATE_FORMAT(dob, '%c-%d')
BETWEEN DATE_FORMAT('1983-08-17', '%c-%d')
AND DATE_FORMAT('1983-08-24', '%c-%d') OR (MONTH('1983-08-17') > MONTH('1983-08-24')
AND (MONTH(dob) >= MONTH('1983-08-17')
OR MONTH(dob) <= MONTH('1983-08-24')))
Run Code Online (Sandbox Code Playgroud)
可以使用任何年份(只是为了完成日期格式),因为年份无关紧要
更新 1
在 SQLFiddle.com 上对其进行了测试
更新 2
我很抱歉我的第一个答案。老实说,我错过了阅读这一行coming in next 7 days from today。我认为这就是我被Imre L. 他有他的意思。我发布这样的答案的原因是因为我认为 OP 要求介于两者之间的日子,而不管year. 所以这里是更新。
SELECT ....
FROM ....
WHERE DATE(dob) BETWEEN NOW() AND NOW() + INTERVAL 7 DAY
Run Code Online (Sandbox Code Playgroud)
希望现在清楚了。:D