INTERVAL

INTERVAL 型の項目は、ある間隔を反映する 1 桁から 21 桁までの連続した単一バイトの数字で、この間隔は、2 つの時点の差を数値で表したものです。各桁の意味は、項目を宣言したときに指定したマスクによって決定されます。

間隔は、(2005 から 1980 を減算したときのように) 正の場合と、(1980 から 2005 を減算したときのように) 負の場合があり、項目の先頭には、マスクに反映されない余分なバイトがあります。レコード内に INTERVAL 型の項目がある場合は、レコードの長さを計算するときに、上位項目 (もしあれば) の長さだけでなく、その余分なバイトも考慮する必要があります。

次のどちらの形式のマスクでも指定できます。
  • 月幅。これには、年数と月数を含めることができます。
  • 秒幅。これには、日数、時間数、分数、秒数、および秒の小数部を含めることができます。

いずれの場合でも、マスク内の 1 文字が 1 桁を表します。例えば、月幅の形式では、一連の y が項目内の年数を示します。年数を表すのに 3 桁だけ必要であれば、マスク内に yyy を指定します。年数を表すのに最大桁数 (9 桁) が必要であれば、yyyyyyyyy を指定します。

指定されたマスク内で、最初の文字を最大 9 回まで (別の指定がない場合) 使用できますが、後続の文字種の数は、それだけ制限されます。

月幅形式のマスクには、以下の文字を順に使用できます。
y
間隔の年数を表す 0 桁から 9 桁までの数字。
M
間隔の月数を表す 0 桁から 9 桁までの数字。M がマスク内の最初の文字でない場合、指定できるのは最大 2 桁までです。

デフォルトのマスクは yyyyMM です。

秒幅形式のマスクには、以下の文字を順に使用できます。
d
間隔の日数を表す 0 桁から 9 桁までの数字。
H
間隔の時間数を表す 0 桁から 9 桁までの数字。H がマスク内の最初の文字でない場合 、指定できるのは最大 2 桁までです。
m
間隔の分数を表す 0 桁から 9 桁までの数字。m がマスク内の最初の文字でない場合、指定できるのは最大 2 桁までです。
s
間隔の秒数を表す 0 桁から 9 桁までの数字。s がマスク内の最初の文字でない場合、指定できるのは最大 2 桁までです。
f
それぞれが秒の小数部を表す 0 から 6 桁の数字。最初の数字は 10 分の 1 を表し、2 番目は 100 分の 1 を表し、以下同様です。 f がマスク内の最初の文字でない場合でも、指定できるのは最大 6 桁までです。
マスクの先頭または末尾で所定の種類の文字を使用しなくてもかまいませんが、中間の文字をスキップすることはできません。 以下は有効なマスクです。
  yyyyyyMM
  yyyyyy
  MM

  ddHHmmssffffff
  HHmmssff
  mmss
  HHmm
しかし、以下のマスクは、中間の文字が欠落しているので無効です。
  // 無効
  ddmmssffffff
  HHssff
デフォルトのマスク (yyyyMM) が有効で、項目が、CICS® for z/OS® のような EBCDIC を使用するホスト環境にある場合、値の内部 16 進表記は、例えば次のようになります。
  // 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 型の項目は、リレーショナル・データベースとの間でデータの受け渡しができません。

ご利用条件 | フィードバック
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.
(C) Copyright IBM Japan 2005.