根据其他列在 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 < 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时间间隔