5

私のプロジェクトでは、Postgres データベースを使用していますが、開発のために H2 を使用することもあります。以下で説明するように、タイムスタンプ列を更新する SQL スクリプトを定義しようとしていますが、Postgres と H2 の両方に適用できる単一の形式が見つかりませんでした。

基本的に、SQL はタイムスタンプを に設定しようとしていますNOW + 1 week

Postgres で機能する SQL は次のとおりです。

update mytable set mytime = CURRENT_TIMESTAMP + INTERVAL '7 days';

H2で機能するSQLは次のとおりです。

update mytable set mytime = CURRENT_TIMESTAMP + 7;

誰かが両方のデータベースで同じことができる単一のSQLを提案できますか?

4

2 に答える 2

5

私のテストによると、これは H2 と PostgreSQL の両方で機能します。

update mytable set mytime = 
cast(cast(current_timestamp as date) + 7 as timestamp) + 
cast(current_timestamp as time);

私が同意するのは少し奇妙ですが、現在のバージョンの H2 と PostgreSQL で見つけた唯一の方法です。

于 2013-03-06T20:29:58.560 に答える