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

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

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
17.00
Published
2020年6月
Language
日本語
Last Update
2021-03-30
dita:mapPath
ja-JP/xmd1556127764262.ditamap
dita:ditavalPath
ja-JP/xmd1556127764262.ditaval
dita:id
B035-1211
Product Category
Software
Teradata Vantage

この関数に渡される式には、次のいずれかのデータ型が含まれている必要があります。

DATE、TIMESTAMP、またはTIMESTAMP WITH TIME ZONE

MONTHS_BETWEENに渡す2つの引数は、上記の3つのデータ型のいずれでもかまいませんが、この2つの引数を同じデータ型にする必要があります。例えば、第1パラメータとしてDATE、第2パラメータとしてTIMESTAMPを渡すことはできません。

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

date_timestamp_value2が次の場合

  • date_timestamp_value1以降では、結果は負になります。
  • date_timestamp_value1以前では、結果は正になります。

date_timestamp_value1date_timestamp_value2が同じ日付の場合や、どちらもが月の最終日の場合、結果は常に整数になります。それ以外の場合、MONTHS_BETWEENは、結果の小数部分を1ヶ月を31日として計算し、date_timestamp_value1date_timestamp_value2の時間構成要素の差分を考えます。グレゴリオ暦がサポートされます。

タイムゾーンのないタイムスタンプは、ローカル タイムゾーンで比較されます。このことは、2つのタイムスタンプが同じ日にあるかどうか、または両方が月の最終日であるかどうかを判断する場合にのみ重要になります。タイムゾーンのあるタイムスタンプは、同じゾーンでの時刻になるように、比較の前にUTCに変換されます。