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

Posted

技术标签:

【中文标题】根据其他列在 HSQLDB 中添加日期间隔【英文标题】:Add Interval to date in HSQLDB based on other column 【发布时间】:2016-01-07 08:27:58 【问题描述】:

我使用 hsqldb 作为单元测试的内存数据库,生产系统使用 mysql 运行。以下查询适用于 mysql,但不适用于 hsqldb:

select * from table where columnTimestamp + INTERVAL 'columnDays' DAY < now();

我想检索间隔基于另一列的所有特定行。当我使用固定值时,它确实适用于 hsqldb,但这不是必需的行为。

hsqldb 返回的错误信息:

data exception: invalid interval format / Error Code: -3406 / State: 22006

【问题讨论】:

【参考方案1】:

用你的列乘以一个恒定的间隔。

select * 
from table 
where columnTimestamp + (INTERVAL '1' DAY * columndays) < now();

【讨论】:

好主意,但似乎这种语法在 mysql 和 hsqlb 中都无效。 @Dag:适用于我(当使用与 table 不同的表名时)与 HSQLDB 2.3,您使用的是哪个版本? hsqldb 2.3.2,MySQL 中的 MySQL 5.6.x:...for the right syntax to use near ') * intervalDays &lt; now()' at line 3, SQLState: 42000, ErrorCode: 1064。在 hsqldb 我得到unexpected token: ) 这是一条 MySQL 错误消息,您要求查询 HSQLDB。在 HSQLDB 中,您可以尝试以不同的方式放置 )(请参阅我的编辑)。但这对我使用 HSQLDB 2.3.2 没有任何影响。 在我描述的问题中,查询仅在 hsqldb 上执行以进行测试,因此它必须同样在 mysql 上运行。移动) 没有帮助,已经尝试过了,抱歉。我正在内存中运行 hsql 并使用 DatabaseManagerSwing 客户端。

以上是关于根据其他列在 HSQLDB 中添加日期间隔的主要内容,如果未能解决你的问题,请参考以下文章

猎豹MFC--DataTimePicker日期时间选择控件CDatatimeCtrl CTime CTimeSpan时间间隔

delphi中如何实现一个日期之间的间隔多少天?

Django注释添加间隔日期

Mysql查询检索帖子并根据特定日期间隔进行过滤

BigQuery:将整数列转换为日期间隔并添加到日期列

Redshift - 在两个日期之间添加日期(月间隔)