INTERVAL 型の項目は、ある間隔を反映する 1 桁から 21 桁までの連続した単一バイトの数字で、この間隔は、2 つの時点の差を数値で表したものです。各桁の意味は、項目を宣言したときに指定したマスクによって決定されます。
間隔は、(2005 から 1980 を減算したときのように) 正の場合と、(1980 から 2005 を減算したときのように) 負の場合があり、項目の先頭には、マスクに反映されない余分なバイトがあります。レコード内に INTERVAL 型の項目がある場合は、レコードの長さを計算するときに、上位項目 (もしあれば) の長さだけでなく、その余分なバイトも考慮する必要があります。
いずれの場合でも、マスク内の 1 文字が 1 桁を表します。例えば、月幅の形式では、一連の y が項目内の年数を示します。年数を表すのに 3 桁だけ必要であれば、マスク内に yyy を指定します。年数を表すのに最大桁数 (9 桁) が必要であれば、yyyyyyyyy を指定します。
指定されたマスク内で、最初の文字を最大 9 回まで (別の指定がない場合) 使用できますが、後続の文字種の数は、それだけ制限されます。
デフォルトのマスクは yyyyMM です。
yyyyyyMM yyyyyy MM ddHHmmssffffff HHmmssff mmss HHmm
// 無効 ddmmssffffff HHssff
// 100 年、2 か月。4E は値が正であることを意味する 4E F0 F1 F0 F0 F0 F2 // 100 年、2 か月。60 は値が負であることを意味する 60 F0 F1 F0 F0 F0 F2
デフォルトのマスク (yyyyMM) が有効で、項目が、Windows® 2000 のような ASCII を使用するワークステーション環境にある場合、値の内部 16 進表記は、例えば次のようになります。
// 100 年、2 か月。2B は値が正であることを意味する 2B 30 31 30 30 30 32 // 100 年、2 か月。2D は値が負であることを意味する 2D 30 31 30 30 30 32
INTERVAL 型の項目は、強く型定義されているので、この型の項目をその他の型の項目と比較したり、その他の型の項目とこの型の項目の間で代入を行ったりすることはできません。
最後に、INTERVAL 型の項目は、リレーショナル・データベースとの間でデータの受け渡しができません。