CHARACTER値またはVARCHAR値は、ターゲットがPeriodデータ型を持つ場合の代入、更新、挿入、マージ、またはパラメータを渡す操作と、他のオペランドにPeriodデータ型がある場合の比較操作のときに、Periodデータ型として暗黙的にキャストされます。その他の非Period値が期間であるターゲットに直接代入されると、エラーが報告されます。同様に、その他の非Period値をPeriod値と直接比較しても、エラーが報告されます。
場合によっては、このエラーを回避するため、値を明示的にPeriodデータ型としてキャストすることがあります。
応答モードがフィールド モード以外の場合や、文字列データがパラメータ化されている場合には、CHARACTERまたはVARCHARからPeriodデータ型への暗黙的な変換時に、文字列内の開始要素値と終了要素値を解釈するためにANSI日時書式の文字列が使用されます。応答モードがフィールド モードであり、文字列データがパラメータ化されていない場合には、文字列内の開始要素値と終了要素値を解釈するためにターゲットの期間の書式が使用されます。以下のテーブルでは、この点を詳しく説明します。
モード | パラメータ化されたデータの有無 | 暗黙的なキャストの解釈に使用される書式 |
---|---|---|
フィールド | いいえ | ターゲットの書式 |
フィールド | はい | ANSI書式 |
フィールド以外 | はい | ANSI書式 |
フィールド以外 | いいえ | ANSI書式 |
ANSI日時書式の文字列を使用して、文字列内の開始要素値と終了要素値を解釈する場合、開始値と終了値を単一引用符で囲むかどうかはオプションです。このような自由度は明示的キャストの場合にも適用されます。