16.20 - interval_expressionの例 - Teradata Vantage NewSQL Engine

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

prodname
Teradata Database
Teradata Vantage NewSQL Engine
vrm_release
16.20
category
プログラミング リファレンス
featnum
B035-1211-162K-JPN
interval_expressionの定義は、以下の3つの形式で表わすことができます。
  • interval_term
  • interval_expression + interval_term
  • (date_time_expression - date_time_term) start TO end

この例では、2番目の定義を使用しています。

SELECT (CAST(INTERVAL '125' MONTH AS INTERVAL YEAR(2) TO MONTH))
+ INTERVAL '12' YEAR;

interval_expressionはINTERVAL '125' MONTHです。

interval_termはINTERVAL '12' YEARです。

処理の段階は、以下のようになります。

  1. CAST関数が、125ヶ月のinterval_expressionの値を10年と5ヶ月に変換します。
  2. 12年のinterval_termの値がinterval_expressionの値に加算され、22年と5ヶ月という結果を生成します。
  3. 結果が適切なデータ型であるINTERVAL YEAR(2) TO MONTHに変換され、'22-05'の結果を生成します。

この例では、interval_expressionの3番目の定義を使用しています。

date_time_expressionの値とdate_time_termの値が比較可能であるようにしなければなりません。

SELECT (TIME '23:59:59.99' - CURRENT_TIME(2)) HOUR(2) TO SECOND(2);

date_time_expressionはTIME '23:59:59.99'です。

date_termは、date_time_primary - CURRENT_TIME(2)です。

処理の段階は、以下のようになります。

  1. 現在のシステム時刻を18:35:37.83と仮定します。
  2. HOUR(2) TO SECOND(2)の時間間隔18:35:37.83がTIMEの値23:59:59.99から減算され、'5:24:22.16'の結果を生成します。

ここではinterval_expressionの3番目の定義を使用して、2つのTIMESTAMP値の分単位での差分を確かめる別の例を示します。まずテーブルを定義します。

CREATE TABLE BillDateTime
(start_time TIMESTAMP(0)
,end_time TIMESTAMP(0));

次に、分単位の差を判別します。

SELECT (end_time - start_time) MINUTE(4)
FROM BillDateTime;

処理の段階は、以下のようになります。

  1. start_time TIMESTAMP値がend_time TIMESTAMP値から減算されて間隔結果を生じます。
  2. MINUTE(4)は4桁の精度の分単位の間隔を指定します。この場合、最大9999分(約1週間)を指定できます。