【SAS】SAS日付と8桁数値の変換
SAS日付と8桁数値の変換方法はいくつかあるみたいなので、覚え書き。
SAS日付→8桁数値
日付関数を使う
YEAR(SAS_DATE)*10000 + MONTH(SAS_DATE)*100 + DAY(SAS_DATE)
文字値に一度変換する
INPUT(NLDATE(SAS_DATE, '%Y%m%d'), best8.)
文字値に一度変換する(マクロバージョン)
マクロで使う場合は、%をエスケープしなければいけないので
%SYSFUNC(INPUTN(%SYSFUNC(NLDATE(SAS_DATE, %NRSTR(%Y%m%d))), best8.))
8桁数値→SAS日付
MDY関数を使う
MDY(input(substr(put(DATE, best8.), 5, 2), best2.), input(substr(put(DATE, best8.), 7, 2), best2.), input(substr(put(DATE, best8.), 1, 4), best4.))
文字値に一度変換する
input(put(DATE, best8.), yymmdd8.)