16.20 - 引数のタイプとルール - Teradata Vantage NewSQL Engine

Teradata Vantage™ SQL日付と時刻の関数および式

prodname
Teradata Database
Teradata Vantage NewSQL Engine
vrm_release
16.20
category
プログラミング リファレンス
featnum
B035-1211-162K-JPN

この関数に渡された式は、次のデータ型を持っている必要があります。

  • date_timestamp_value = DATE、TIMESTAMP、またはTIMESTAMP WITH TIME ZONE
  • num_months = INTEGER

num_months引数では、UDFに適用される暗黙のデータ型変換ルールを使用してINTEGERに変換できるデータ型の値も渡すことができます。date_timestamp_value引数については、暗黙の型変換はサポートされていません。

UDFの暗黙の型変換ルールは、Teradata Databaseで通常使用される暗黙の型変換ルールよりも制限されています。UDFの暗黙の変換ルールに従って、必要なデータ型に変換できない引数は、明示的にキャストする必要があります。

詳細については、<Teradata Vantage™ SQL外部ルーチン プログラミング、B035-1147>の「互換データ型」を参照してください。

TIMESTAMP値は、UTC時間でデータベースに格納されるためタイムゾーンが欠けています。そのため、この関数内ではタイム スタンプ値の解釈にセッションのタイムゾーンを使用します。TIMESTAMP WITH TIME ZONE値の場合、この関数内ではタイム スタンプ値の解釈にタイムゾーン構成要素を使用します。

date_timestamp_valueの日付構成要素がその月の最終日の場合や、結果の月がdate_timestamp_valueの日付構成要素よりも少ない日数になる場合、OADD_MONTHSは結果としての月の最終日を返します。それ以外の場合、OADD_MONTHSはdate_timestamp_valueとして同じ日付構成要素を持つ値を返します。

OADD_MONTHSとADD_MONTHSの相違点は、OADD_MONTHSで月の最終日に月を追加すると、この関数が常に月の最終日を返すことです。次の問合わせは、ADD_MONTHSとOADD_MONTHSの相違点を説明するものです。

  • 問合わせ
    SELECT ADD_MONTHS ('2008-02-29', 1);

    は'08/03/29'を返します。

  • 問合わせ
    SELECT OADD_MONTHS ('2008-02-29', 1);

    は'08/03/31'を返します。