INTEGERDATEモードのDATE値を除いて、DateTimeおよびIntervalデータの外部値は、そのセッションの指定されたクライアント文字集合において、固定長CharFix文字列(論理文字)として表わされています。
USINGリクエスト修飾子で提供する、DateTime値として使用するクライアント データの型は、適切なDateTime型またはCHARACTER(n)のいずれかとして定義できます。ここでnは、文字列のDateTimeまたはIntervalデータ型の外部形式として適切な長さで、この文字列はDateTime値またはInterval値を表わすために内部的に使用されます。
クライアントがANSI DateTimeのデータ型を認識せずにUSINGデータを作成する場合は、それらのフィールドはCHARACTER(n)としてTYPE指定されます。次に、それらのUSING値がINSERTまたはUPDATEの割当てリストに表示される場合は、そのフィールド名は、USING節から直接使用されます。
次に例を示します。
USING (TimeVal CHARACTER(11), NumVal INTEGER, TextVal (CHARACTER(5)) INSERT INTO TABLE_1 (:TimeVal, :NumVal, :TextVal);
ANSI DateTimeをUSINGリクエスト修飾子付きでインポートし、その値がINSERTまたはUPDATE以外の処置に使用される場合は、その値を外部文字形式から適正なANSI DateTime型に明示的にCASTしなければなりません。
次に例を示します。
USING (TimeVal CHARACTER(11), NumVal INTEGER) UPDATE TABLE_1 SET TimeField=:TimeVal, NumField=:NumVal WHERE CAST(:TimeVal AS TIME(2)) > TimeField;
割り当てのためにこのUSINGリクエスト修飾子でTimeVal CHARACTER(11)を直接使用してもかまいませんが、TimeFieldはTIME(2)と定義されているANSI TIMEであるために、テーブル内のフィールド値TimeFieldを比較するには、列データ定義を明示的にTIME(2)にCASTする必要があります。
DateTimeおよびInterval値の両方の宣言を使用して、USINGリクエスト修飾子では外部文字列の値をDateTimeまたはInterval値として扱うことができます。このような値をインポートするためには、それらの文字列を直接USINGリクエスト修飾子にインポートします。
値をUSINGリクエスト修飾子に移動しても、文字列データが型定義で示された有効な内部DateTime値またはInterval値に変換されない場合は、システムはエラーをアプリケーションに返します。