1 つのパターンの日付を含む値を受け取り、その値を別のパターンの日付に変換して返します。
REPATTERN (d, p, q, w)
d は、日付を表す文字列式です。d の長さは、少なくとも q で指定されたソース パターンの長さと同じでなければなりません。d の方が大きい場合は、余った文字数の分を先頭空白文字で埋める必要があります。
d の値は計算型としなければなりませんが、文字型にできるようにもする必要があります。そうでない場合、REPATTERN 関数は d を文字に変換します。
p は、ターゲットとして使用される、サポートされる日付および時刻のパターンです。
q は、ソースとして使用される、サポートされる日付および時刻のパターンです。
w は、整数に変換可能な式 (1976 など) を指定します。
次の例は、REPATTERN を使用して 2 桁の年と 4 桁の年の日付パターンを変換する方法を示します。REPATTERN を使用することで、サポートされる任意のパターンから別のパターンに日付を変換できます。それぞれのパターンで保持される年の値の桁数は異なっていてもかまいません。
repat: proc options(main); dcl str char(16)var; on error begin; put skip list ('Error raised. Outside century window.'); STOP: end; str = REPATTERN('770101','YYYYMMDD','YYMMDD', 1976); put skip list (str); str = REPATTERN('280101','YYYYMMDD','YYMMDD', 1976); put skip list (str); str = REPATTERN('19770101','YYMMDD','YYYYMMDD', 1976); put skip list (str); str = REPATTERN('20280101','YYMMDD','YYYYMMDD', 1976); put skip list (str); str = REPATTERN('19700101','YYMMDD','YYYYMMDD', 1976); put skip list (str); end;
このコード サンプルの出力は次のようになります。
19770101
20280101
770101
280101
Error raised.Outside century window.
なし。
説明
REPATTERN 関数は、1 つのパターンの日付を含む値を受け取り、その値を別のパターンの日付に変換して返します。戻り値には、CHAR(m) NONVARYING 属性が設定されます。この場合の (m) は、p で指定されるターゲット パターンの長さです。
サポートされるすべてのパターンについては、「日付/時刻組み込み関数」を参照してください。