我正在尝试从hsqldb中存储的日期列表中检索生日,以便我可以在接下来的7天内列出即将到来的生日。 以下是查询。当我执行此查询时,我得到了curdate的意外令牌。我也尝试了sysdate()和current_date,我得到了同样的错误。请帮我解决这个问题。
SELECT *
FROM contacts
WHERE DATE_ADD(dob, INTERVAL YEAR(CURDATE())-YEAR(dob) YEAR)
BETWEEN CURDATE() AND DATE_ADD(CURDATE(), INTERVAL 7 DAY);

答案 0 :(得分:1)
第一次使用INTERVAL语法不正确。您可以像这样修改它:
SELECT *
FROM contacts
WHERE DATE_ADD(dob, (CURDATE() - dob) YEAR)
BETWEEN CURDATE() AND DATE_ADD(CURDATE(), INTERVAL 7 DAY);