这是我的查询我正在使用此查询从数据库中检索生日列表我想通过dob(出生日期)以asc顺序检索数据我正在使用order by dob asc
但是它给出了mysql语法错误。
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那样的年份来缩短这一点
答案 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'