16.20 - ADD_MONTHSの正規化の動作 - Teradata Vantage NewSQL Engine

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

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

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