17.10 - ADD_MONTHSの正規化の動作 - 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
日本語 (日本)

月の間隔の算術に対する標準的なアプローチは、適宜 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 算術は規定の調整を行ない、有効な日付を戻します。