MOVE および MOVEL 命令コードは、日付、時刻、およびタイム・スタンプ・デー
タ・タイプ・フィールドの転送に使用することができます。
MOVE および MOVEL 命令コードでは次の組み合わせを使用することができます。
- 日付から日付
- 時刻から時刻
- タイム・スタンプからタイム・スタンプ
- 日付からタイム・スタンプ
- 時刻からタイム・スタンプ (マイクロ秒を 000000 に設定)
- タイム・スタンプから日付
- タイム・スタンプから時刻
- 日付から文字または数値
- 時刻から文字または数値
- タイム・スタンプから文字または数値
- 文字または数値から日付
- 文字または数値から時刻
- 文字または数値からタイム・スタンプ
演算項目 1 は、転送元および転送先が両方とも、日付、時刻または
タイム・スタンプ・フィールドである場合にはブランクでなければなりません。 演算項目 1 がブランクの場合、日付、時刻、またはタイム・スタンプ・フィールド
の形式が使用されます。
そうでない場合には、演算項目 1 にこの命令の転送元または転送先の文字また
は数値フィールドに対応する日付または時刻の形式が入ります。有効な任意の形式を指定することができます。
日付データ・タイプ、時刻データ・タイプ、および タイム・スタンプ・データ・タイプ を
参照してください。
演算項目 1 に指定する場合には、次のことに留意してください。
- 時刻の形式 *USA は、時刻と数値フィールドの間の転送には使用することがで
きません。
- 演算項目 1 には形式 *LONGJUL、*CYMD、*CMDY、*CDMY、および
特殊値 *JOBRUN を使用することができます (詳細については、表 3 を参照してください)。
- ゼロ (0) が形式の最後に指定されると (例えば *MDY0)、
その文字フィールドに区切り記号が含まれていないことを示します。
- 2 桁の年の形式 (*MDY、*DMY、*YMD、*JUL および *JOBRUN) で
表すことができるのは、1940 から 2039 の範囲内の日付だけです。 3 桁の年の
形式 (*CYMD、*CMDY、*CDMY) で表すことができるのは、1900 から 2899 の範囲内の日付だけです。 これらの範囲外の日付で 2 桁または 3 桁の年の形式への変換が要求された場合には、
エラーが出されます。
- タイム・スタンプとの間で文字値または数値を転送するため
に MOVE および MOVEL を使用する場合、文字値または数値はタイム・スタンプ
であると想定されます。
演算項目 2 は必須で、文字、数値、日付、時刻、またはタイム・スタンプのいずれかの
値でなければなりません。 この項目には、変換するフィールド、配列、配列要素、
テーブル名、リテラル、または名前のついた定数のいずれかを入れます。
演算項目 2 には次の規則が適用されます。
- 区切り文字は指定された形式に対して有効なものでなければなりません。
- 演算項目 2 が日付または時刻に有効な表記でないか、あるいはその形式が
演算項目 1 に指定された形式と一致しない場合には、エラーが生成されます。
- 演算項目 2 に UDATE または *DATE が含まれている場合、
演算項目 1 はオプションで、見出し仕様 DATEDIT キーワードに
対応します。
- 演算項目 2 に UDATE が入っていて、演算項目 1 の記入項目がコーディング
されている場合、年が 2 桁の日付形式でなければなりません。 演算項目 2 に *DATE が入っていて、演算項目 1 がコーディング
されている場合、年が 4 桁の日付形式でなければなりません。
結果フィールドは日付、時刻、タイム・スタンプ、数値、または
文字の各変数でなければなりません。このフィールドは、フィールド、配列、配列要素、または
テーブル名のいずれでもかまいません。日付または時刻は、その定義済みの形式
または演算項目 1 に指定された形式コードに従って、結果フィールドに入れられます。
結果フィールドが数値の場合には、命令に先立って区切り文字が除去されます。 使用される長さは、区切り文字が除去された後の長さです。
日付からタイム・スタンプ・フィールドへ転送する場合には、タイム・スタンプの時刻
とマイクロ秒部分は影響を受けませんが、タイム・スタンプ全体が検査されて、正
しくなければエラーが生成されます。
時刻からタイム・スタンプ・フィールドに転送する場合には、タイム・スタンプのマイ
クロ秒部分は 000000 に設定されます。 日付部分は影響を受けませんが、タイム・スタンプ全体が検査されて、正しくなければエラーが生成されます。
文字データまたは数値データが必要な長さより長い場合には、左端のデータ (MOVE 命令
の場合は右端) が使用されます。 演算項目 1 によって転送されるデータの長さが
決まることに留意してください。 例えば、数値日付からの MOVE 命令で、
演算項目 1 の形式が *MDY の場合、演算項目 2 の右端の 6 桁のみが
使用されます。