目的
日数、時間数、分数、および秒数で期間を定義する間隔値としてフィールドを識別します。
構文
- precision
- DAYに指定できる桁数の範囲。1~4。
- fractional_seconds_precision
- SECONDの値の小数の精度。
- 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));