1

私はDerby(および基本的にデータベース全般)を初めて使用し、Javaを使用したEclipseを介して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 に答える