interval_expressionの例 - Teradata Database - Teradata Vantage NewSQL Engine - ANSIのINTERVAL、interval_expressionの例。

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

Product
Teradata Database
Teradata Vantage NewSQL Engine
Release Number
16.20
Published
2019年3月
Language
日本語
Last Update
2019-10-29
dita:mapPath
ja-JP/pxz1544241488545.ditamap
dita:ditavalPath
ja-JP/pxz1544241488545.ditaval
dita:id
B035-1211
Product Category
Software
Teradata Vantage
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週間)を指定できます。