$EFFDT というフィールドを使用する SQR プログラムがあります。プログラムで日付変数として明示的に宣言されていません。現在行っていることは、次のように最初に '' (空白) に設定することです。
LET $EFFDT = ' '
$EFFDT
次に、というフィールドからファイルを読み取ることによって設定されます$INPUT
read 1 into $Input:80
LET $EFFDT = substr($INPUT,53,8)
次に、日付を再フォーマットして、YYYY-MM-DD の形式にします。
do Format-DateTime($EFFDT,$EFFDT,{Prompt-Mask},'','native')
後の手順でやりたいことは、$EFFDT を $EFFDT 値から 1 日引いた値に設定することです
後の手順で追加しようとしたのは次のとおりです。
LET $EFFDT = DATEADD($EFFDT, 'day', -1)
SQR を実行しようとすると、SQR 4045
エラーが発生します (関数または演算子 'dateadd' には日付引数が必要です'
私が読んだことから、これは $EFFDT 変数を日付変数として宣言する必要があることを意味します。したがって、この変数を日付として明示的に宣言しましたが、プログラムがコードのこの部分を実行するとエラーになります。
LET $EFFDT = ' '
SQR 1944
- 日付 ' ' は、SQR_DB_DATE_FORMAT で指定された形式、または以下にリストされている受け入れ可能な形式のいずれかではありません....
したがって、元のエラーまたは上記の2番目のエラーを回避する方法が正確にはわかりません。最終的には、$EFFDT - 1(day) を SQL Insert コマンドのフィールドとして使用する必要があります。どんな助けでも大歓迎です!