16.20 - INTERVAL DAY TO SECONDデータ型 - Teradata Vantage NewSQL Engine

Teradata Vantage™ データ タイプおよびリテラル

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

目的

日数、時間数、分数、および秒数で期間を定義する間隔値としてフィールドを識別します。

構文



precision
DAYに指定できる桁数の範囲。1~4。
デフォルトは2です。
fractional_seconds_precision
SECONDの値の小数の精度。
デフォルトは6です。
attributes
適切なデータ型、列記憶、または列制約属性。
具体的な説明については、主なデータ型属性記憶属性と制約属性を参照してください。

ANSI準拠

INTERVAL DAY TO SECONDは、ANSI SQL:2011に準拠しています。

INTERVAL DAY TO SECONDの内部表現

概念的にはINTERVAL DAY TO SECONDは、以下のフィールドから成るレコードです。

フィールド名 格納形式 全長
DAY SMALLINT 10バイト
HOUR SMALLINT
MINUTE SMALLINT
SECOND INTEGER

INTERVAL DAY TO SECONDの外部表現

INTERVAL DAY TO SECONDタイプは、レコードおよび標識モードでCHARACTERデータとしてインポートおよびエクスポートされます。その際、クライアント文字セットが使用されます。

fractional_seconds_precisionの値 タイプと形式
0 タイプ: CHARACTER(precision + 10)
形式: '-d(precision) hh:mm:ss'
n

nは通常1~6

タイプ: CHARACTER(precision + n + 11)
形式: '-d(precision) hh:mm:ss.s(n)'

例えば、INTERVAL DAY (4) TO SECOND(3)の場合、値は'   125 12:27:31.125 'などとなります。

DAYフィールドには、2つの先行ブランク文字が付いています。最初のブランクは符号用であり、正の数の間隔の場合はありません。2番目のブランクは、DAYフィールドの固定サイズを4桁に保つためのものです。

値の範囲

INTERVAL DAY TO SECONDの値の範囲は、以下のとおりです。

タイプ、精度、および秒小数部の精度 最小値 最大値
INTERVAL DAY(1) TO SECOND(0) -'9 23:59:59' '9 23:59:59'
INTERVAL DAY(1) TO SECOND(1) -'9 23:59:59.9' '9 23:59:59.9'
INTERVAL DAY(1) TO SECOND(2) -'9 23:59:59.99' '9 23:59:59.99'
INTERVAL DAY(1) TO SECOND(3) -'9 23:59:59.999' '9 23:59:59.999'
INTERVAL DAY(1) TO SECOND(4) -'9 23:59:59.9999' '9 23:59:59.9999'
INTERVAL DAY(1) TO SECOND(5) -'9 23:59:59.99999' '9 23:59:59.99999'
INTERVAL DAY(1) TO SECOND(6) -'9 23:59:59.999999' '9 23:59:59.999999'
INTERVAL DAY(2) TO SECOND(0) -'99 23:59:59' '99 23:59:59'
INTERVAL DAY(2) TO SECOND(1) -'99 23:59:59.9' '99 23:59:59.9'
INTERVAL DAY(2) TO SECOND(2) -'99 23:59:59.99' '99 23:59:59.99'
INTERVAL DAY(2) TO SECOND(3) -'99 23:59:59.999' '99 23:59:59.999'
INTERVAL DAY(2) TO SECOND(4) -'99 23:59:59.9999' '99 23:59:59.9999'
INTERVAL DAY(2) TO SECOND(5) -'99 23:59:59.99999' '99 23:59:59.99999'
INTERVAL DAY(2) TO SECOND(6) -'99 23:59:59.999999' '99 23:59:59.999999'
INTERVAL DAY(3) TO SECOND(0) -'999 23:59:59' '999 23:59:59'
INTERVAL DAY(3) TO SECOND(1) -'999 23:59:59.9' '999 23:59:59.9'
INTERVAL DAY(3) TO SECOND(2) -'999 23:59:59.99' '999 23:59:59.99'
INTERVAL DAY(3) TO SECOND(3) -'999 23:59:59.999' '999 23:59:59.999'
INTERVAL DAY(3) TO SECOND(4) -'999 23:59:59.9999' '999 23:59:59.9999'
INTERVAL DAY(3) TO SECOND(5) -'999 23:59:59.99999' '999 23:59:59.99999'
INTERVAL DAY(3) TO SECOND(6) -'999 23:59:59.999999' '999 23:59:59.999999'
INTERVAL DAY(4) TO SECOND(0) -'9999 23:59:59' '9999 23:59:59'
INTERVAL DAY(4) TO SECOND(1) -'9999 23:59:59.9' '9999 23:59:59.9'
INTERVAL DAY(4) TO SECOND(2) -'9999 23:59:59.99' '9999 23:59:59.99'
INTERVAL DAY(4) TO SECOND(3) -'9999 23:59:59.999' '9999 23:59:59.999'
INTERVAL DAY(4) TO SECOND(4) -'9999 23:59:59.9999' '9999 23:59:59.9999'
INTERVAL DAY(4) TO SECOND(5) -'9999 23:59:59.99999' '9999 23:59:59.99999'
INTERVAL DAY(4) TO SECOND(6) -'9999 23:59:59.999999' '9999 23:59:59.999999'

INTERVAL DAY TO SECONDの暗黙の変換と明示的な変換

Teradata Databaseがある間隔データ型から他の間隔タイプへの暗黙の変換を実行する場合もあります。CASTを使用することにより、ある間隔タイプを他の間隔タイプに明示的に変換することもできます。

変換は同じINTERVALファミリーの範囲内でのみ可能です。例えば、YEARの間隔(INTERVAL)を月には変換できますが、日付や時刻には変換できません。

詳細については、<Teradata Vantage™ SQL関数、式、および述部、B035-1145>の「データ型の変換」を参照してください。

例: INTERVAL DAY TO SECONDデータ型

以下の文は、INTERVAL DAY TO SECOND列を備えたテーブルを作成します。

CREATE TABLE TimeInfo
  (Id INTEGER
  ,Offset INTERVAL DAY (4) TO SECOND (4));