1

我是 Derby 的新手(基本上是一般的数据库),我正在尝试通过 Eclipse 使用 Java 来了解 Derby。

我想要做的是从报告生成后的最后 30 秒内生成当前在 Derby 数据库中的所有条目的报告。

我设法通过以下方式在 MySQL 中得到了我想要的东西:

SELECT * FROM table WHERE datetime > (now() - 间隔 30 秒)

Derby 中是否有等效或类似的功能?

4

1 回答 1

1

不幸的是,Derby 不支持标准 (ANSI) SQL 日期算术。您需要使用 JDBC 转义函数:

c:\db-derby-10.8.2.2\bin>ij
ij version 10.8
ij> connect 'jdbc:derby:c:/temp/sotest';
ij> create table foo (datetime timestamp);
0 rows inserted/updated/deleted
ij> insert into foo values (current_timestamp);
1 row inserted/updated/deleted
ij> commit;
ij> select *
from foo
where datetime > {fn timestampadd(SQL_TSI_DAY, -10, current_timestamp)};
> > DATETIME
-----------------------------
2012-06-10 12:32:48.859

1 row selected
ij>

有关函数的完整列表,请参阅参考手册:http ://db.apache.org/derby/docs/10.8/ref/rrefjdbc88908.html

于 2012-06-10T10:01:26.973 回答