2016-12-19 91 views
0

日付がddMonyyの形式で文字列として格納されたデータセットがあります。 19Dec16。SAS日付をDDMonYY(date7。)としてSASに変換する文字列を変換します。日付

date7を使用して文字列を変換するとき。 SASの日付にインフォーマットすると、何年かは19yと解釈され、あるものは20yyと解釈されます。ここで

は、サンプルコード、今日(2016年12月19日)のコードを実行する

data strDates; 
infile cards; 
input StringDate $; 
cards; 
31Dec99 
01Jan00 
19Dec16 
31Dec25 
01Jan26 
; 
run; 
data convertTest; 
set strDates; 
format Date date9.; 
Date=input(StringDate,date7.); 
run; 

で以下の結果が01Jan00と31Dec25間

strDate date 
31Dec99 31DEC1999 
01Jan00 01JAN2000 
19Dec16 19DEC2016 
31Dec25 31DEC2025 
01jan26 01JAN1926 

日付が日付ながら、年間2000から2025に割り当てられている生成

:01Jan26-31Dec99から年間1926から1999

質問として扱われます

2000または1900を年に追加するかどうかはどのように決定されますか?私はそれがランタイム(コードが実行されている暦年)に依存していると思われますが、SASのドキュメントでこれを参照することはできませんでした。

答えて

2

システムとバージョンに応じて、おそらく20または26の値を持つオプションのYEARCUTOFFがあります。変更の詳細については、KB note 46368を参照してください。

SAS 9.4を使用しているように聞こえます(デフォルトは26です)。0-25のいずれかは「20xx」、26-99は「19xx」となります。その値があなたのデータに対して機能しない場合(またはあなた自身で4桁の年を構成する場合)、YEARCUTOFFオプションを変更することができます。

+0

ありがとうございました@ジョーは私が探していたものです – kristof

関連する問題