php mysql 在两个日期之间搜索生日

use*_*597 1 php mysql between

我需要从表中找到人们的生日……从今天起接下来的 7 天。我有一个查询 .. SELECT * FROMtable WHEREdobLIKE BETWEEN %-08-17 AND %-08-24但它返回日期未在数据库中提交的记录..我的意思是条目是 0000-00-00 我已经将生日以日期格式存储在表中。请帮我找到错误。

Joh*_*Woo 5

由于这是 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 上对其进行了测试

SQLFiddle 演示

更新 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