按日期查询时间间隔

时间:2014-09-24 06:04:32

标签: php mysql database

这是我的查询我正在使用此查询从数据库中检索生日列表我想通过dob(出生日期)以asc顺序检索数据我正在使用order by dob asc但是它给出了mysql语法错误。

QUERY

SELECT * FROM  members 
WHERE  DATE_ADD(dob, INTERVAL YEAR(CURDATE())-YEAR(dob) YEAR) 
BETWEEN CURDATE() 
AND DATE_ADD(CURDATE(), INTERVAL 7 DAY 
ORDER BY dob ASC

它现在在这里工作是一个问题再一次dob(出生日期)格式是1990-10-11当我使用dob asc的命令时,它的数据简短1990-10-11,1991-10-09,但是我希望通过数据而不是像1991-10-09,1990-10-11那样的年份来缩短这一点

2 个答案:

答案 0 :(得分:0)

你错过了a)

...BETWEEN CURDATE() AND DATE_ADD(CURDATE(), INTERVAL 7 DAY order by...

答案 1 :(得分:0)

尝试此操作,您在查询中缺少)

"SELECT * FROM  members WHERE  DATE_ADD(dob, INTERVAL YEAR(CURDATE())-YEAR(dob) YEAR) BETWEEN CURDATE() AND DATE_ADD(CURDATE(), INTERVAL 7 DAY) order by date(dob) asc"

如果你想按月份排序而不是使用order by Month(dob)

你也可以尝试选择这样的字段

'SELECT field1, field2, DATE_FORMAT(dob, "%d-%M-%Y") AS userdob FROM  members WHERE  
 DATE_ADD(dob, INTERVAL YEAR(CURDATE())-YEAR(dob) YEAR) BETWEEN CURDATE() AND 
 DATE_ADD(CURDATE(), INTERVAL 7 DAY) order by userdob asc'