ページの先頭行へ戻る
Enterprise Postgres 10 アプリケーション開発ガイド
FUJITSU Software

B.4.3 一定の期間経過した後の日付などINTERVAL型の計算結果を利用したい

Oracleデータベース

SELECT NVL( CURRENT_DATE + (col1 * 1.5), col2)
  FROM t1;

※col1とcol2はINTERVAL YEAR TO MONTH型とします。

FUJITSU Enterprise Postgres

SELECT NVL( CURRENT_DATE +
        CAST(col1 * 1.5 AS
INTERVAL YEAR TO MONTH), col2) FROM t1;

※col1とcol2はINTERVAL YEAR TO MONTH型とします。


機能差異
Oracleデータベース

INTERVAL YEAR TO MONTH型の乗余算結果は、INTERVAL YEAR TO MONTH型となり端数(日数)は切り捨てられます。

FUJITSU Enterprise Postgres

INTERVAL YEAR TO MONTH型の乗余算結果は、INTERVAL型となり端数(日数)は切り捨てられません。

移行手順

以下の手順で移行してください。

  1. “*”、および“/”というキーワードで乗余算を行っている箇所を検索し、指定されている値がINTERVAL YEAR TO MONTH型であるか確認します。

  2. INTERVAL YEAR TO MONTH型である場合は、CASTを使用して演算結果を明示的にINTERVAL YEAR TO MONTH型に型変換します。