INTERVAL DAY TO SECONDの内部表現
概念的にはINTERVAL DAY TO SECONDは、以下のフィールドから成るレコードです。
フィールド名 | Storage Format | 全長 |
---|---|---|
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の暗黙の変換と明示的な変換
Vantageがある間隔データ型から他の間隔タイプへの暗黙の変換を実行する場合もあります。CASTを使用することにより、ある間隔タイプを他の間隔タイプに明示的に変換することもできます。
変換は同じINTERVALファミリーの範囲内でのみ可能です。例えば、YEARの間隔(INTERVAL)を月には変換できますが、日付や時刻には変換できません。
詳細については、<Teradata Vantage™ - SQL関数、式、および述部、B035-1145>を参照してください。