我是Derby的新手(基本上是数据库),我正试图通过Eclipse使用Java来熟悉Derby。
我要做的是从报告生成以来的最后30秒生成当前在Derby数据库中的所有条目的报告。
我设法通过以下方式获得我想要的MySQL:
SELECT * FROM table WHERE datetime> (现在() - 间隔30秒)
Derby中是否有相同或类似的功能?
答案 0 :(得分: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