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

B.4.2 ある日の日数を加算するなどの日時と数値の演算をしたい

Oracleデータベース

SELECT NVL( col1 + 10, CURRENT_DATE)
  FROM t1;

※col1はTIMESTAMP WITHOUT TIME ZONE型、またはTIMESTAMP WITH TIME ZONE型とします。

FUJITSU Enterprise Postgres

SELECT NVL( CAST(col1 AS DATE) + 10, CURRENT_DATE)
  FROM t1;

※col1はTIMESTAMP WITHOUT TIME ZONE型、またはTIMESTAMP WITH TIME ZONE型とします。


機能差異
Oracleデータベース

TIMESTAMP WITHOUT TIME ZONE型、およびTIMESTAMP WITH TIME ZONE型と数値の演算(加減算)をすることができます。演算結果は、DATE型になります。

FUJITSU Enterprise Postgres

TIMESTAMP WITHOUT TIME ZONE型、およびTIMESTAMP WITH TIME ZONE型と数値の演算(加減算)をすることができません。DATE型と数値の演算(加減算)をすることができます。

移行手順

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

  1. “+”、および“-”というキーワードで演算(加減算)を行っている箇所を検索し、TIMESTAMP WITHOUT TIME ZONE型、およびTIMESTAMP WITH TIME ZONE型と数値の演算であるか確認します。

  2. TIMESTAMP WITHOUT TIME ZONE型、およびTIMESTAMP WITH TIME ZONE型と数値の演算である場合は、CASTを使用して、明示的にTIMESTAMP WITHOUT TIME ZONE型、およびTIMESTAMP WITH TIME ZONE型をDATE型に変換します。