2017-01-10 4 views
0

SQLの2つの日付の間の秒数を計算する必要があります。問題は、異なるデータベースエンジンを使用して、異なる環境で同じクエリが実行されることです。さまざまなSQLデータベース(MySQL、Oracle、H2)の2つの日付間の秒の差を計算する

ローカルにはMySQLがありますが、実稼働環境ではOracle、テストではH2があります。

TIME_TO_SEC関数を使用してクエリを書きましたが、完全に機能しましたが、統合テストは失敗しました。なぜなら、MySQLの代わりにH2があったからです。私もDATEDIFF関数を使用しようとしましたが、その実装はこれらすべてのデータベースで異なります。

これらのデータベースすべてに対して、単一のユニバーサルクエリを書き込む可能性はありますか?

+0

私は知らない。やってみました? – RiggsFolly

+2

アプリケーションを完全に1つのDBで開発して稼働させ、運用環境で異なるアプリケーションを維持するにはどうすればよいですか?ちょうど祈っている? – milheiros

+1

私は誤解する必要があります!テストデータベースとしてのMYSQLデータベース、実稼働環境用のOracleデータベース、他のものに対するH2があります。あれは正しいですか? – RiggsFolly

答えて

1

私は60 + extract(SECOND FROM (b.created_ts)) - extract(SECOND FROM a.created_ts)を使用しました。これらはすべてのデータベースで動作します。

-1

私はOracleで試してみることができます。これはあなたを助ける?

SELECT (SYSDATE - (SYSDATE-1)) * 60 * 60 * 24 
    FROM DUAL 
関連する問題