SASは、1/10秒未満の端数を含む日時を保存して使用できますか?
例えば:
data _null_;
input @1 from_dt:datetime22.;
put from_dt= ;
cards;
24Sep2009:11:21:19.856
;
run;
日時変数は、他の数値変数と同じように数値変数です。その値は、01jan1960T00:00:00からの秒数として理解されています。お役に立てれば。
data _null_;
/* for date time, 1 means 1 sec since midnight jan 1st 1960 */
dt = 1;
put dt :datetime.;
/* you can show the hundredth of second using datetime format */
dt = 0.01;
put dt :datetime19.2;
/* but it is just a double type number. you can do
what you want with the variable as with any other numeric
variables */
dt = 0.01;
put "It was " dt :wordf15. "second after midnight.";
run;
/* on log
01JAN60:00:00:01
01JAN60:00:00:00.01
it was zero and 01/100 second after midnight.
*/
サンプルコードは、印刷出力で丸められています。putステートメントにフォーマット(例:best32)を追加すると、保持される精度が向上することがわかります。
data _null_;
input @1 from_dt:datetime22.;
put from_dt= best32.;
cards;
24Sep2009:11:21:19.856
;
run;
from_dt=1569410479.856
Rogが指摘したように、0.1秒よりも正確に日時を読み込んで保存できます。
datetime22の代わりに、datetime22.3または同様の形式と情報を使用してください。