ADD_MONTHSの正規化の動作 - Advanced SQL Engine - Teradata Database

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

Product
Advanced SQL Engine
Teradata Database
Release Number
17.10
Published
2021年7月
Language
日本語
Last Update
2021-09-23
dita:mapPath
ja-JP/dzx1591742169550.ditamap
dita:ditavalPath
ja-JP/wrg1590696035526.ditaval
dita:id
B035-1211
Product Category
Software
Teradata Vantage

月の間隔の算術に対する標準的なアプローチは、適宜 MONTH および YEAR 値を増分し、DAY のソース値を保存することです。この方法では、ターゲット月の日数がソース日付のDAY値よりも小さい場合に問題になります。

例えば、'1999-01-31'というソースDATE値に1 MONTHを加算する場合、結果を処理するためにどんなアプローチをとるべきでしょうか。標準的なアプローチを使えば、結果は'1999-02-31'になりますが、2月31日は有効な日付ではありません。

ADD_MONTHSの動作は、ANSI SQL:2011準拠の演算であるDATE ± INTERVAL ‘n’ MONTHおよびTIMESTAMP ± INTERVAL ‘n’ MONTHの動作に相当しますが、1つの重要な違いがあります。

これら2つのスカラー算術演算の相違点は、有効でない日付値が関数から戻される場合のそれぞれの動作にあります。

  • ANSI SQL:2011の算術はエラーを戻します。
  • ADD_MONTHS 算術は規定の調整を行ない、有効な日付を戻します。