17.10 - 引数のタイプとルール - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQLの日付/時刻関数と式

Product
Advanced SQL Engine
Teradata Database
Release Number
17.10
Release Date
2021年7月
Content Type
プログラミング リファレンス
Publication ID
B035-1211-171K-JPN
Language
日本語 (日本)
この関数に渡された式は、次のデータ型を持っている必要があります。
  • date_timestamp_value = DATE、TIMESTAMP、またはTIMESTAMP WITH TIME ZONE
  • num_months = INTEGER

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

UDFの暗黙の型変換ルールは、Vantageで通常使用される暗黙の型変換ルールよりも制限されています。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'を返します。