如何从 hsqldb 中的日期检索当前日期和 day_of_month 以列出即将到来的生日

Posted

技术标签:

【中文标题】如何从 hsqldb 中的日期检索当前日期和 day_of_month 以列出即将到来的生日【英文标题】:How to retrieve current date and day_of_month from date in hsqldb for listing upcoming birthdays 【发布时间】:2014-12-02 14:14:05 【问题描述】:

我正在尝试从存储在 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);

【问题讨论】:

【参考方案1】:

第一次使用 INTERVAL 是不正确的语法。你可以这样修改:

SELECT * 
FROM  contacts
WHERE  DATE_ADD(dob, (CURDATE() - dob) YEAR)
            BETWEEN CURDATE() AND DATE_ADD(CURDATE(), INTERVAL 7 DAY);

【讨论】:

以上是关于如何从 hsqldb 中的日期检索当前日期和 day_of_month 以列出即将到来的生日的主要内容,如果未能解决你的问题,请参考以下文章

数据库 Hsqldb 无法区分日期和时间戳

根据其他列在 HSQLDB 中添加日期间隔

如何按当前日期之后的日期过滤?

如何使用数据库检索日期设置 raddatepicker 日期

如何获取当前月份的开始日期和结束日期

如何从当前月份中选择当前日期