1

SASは、1/10秒未満の端数を含む日時を保存して使用できますか?

例えば:

data _null_;
input @1 from_dt:datetime22.;
put from_dt= ;
cards;      
24Sep2009:11:21:19.856
;
run;
4

3 に答える 3

2

日時変数は、他の数値変数と同じように数値変数です。その値は、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.
*/
于 2009-09-25T16:19:02.933 に答える
2

サンプルコードは、印刷出力で丸められています。putステートメントにフォーマット(例:best32)を追加すると、保持される精度が向上することがわかります。

data _null_; 
input @1 from_dt:datetime22.; 
put from_dt= best32.; 
cards;
24Sep2009:11:21:19.856 
; 
run; 

from_dt=1569410479.856
于 2009-09-24T23:11:42.033 に答える
1

Rogが指摘したように、0.1秒よりも正確に日時を読み込んで保存できます。

datetime22の代わりに、datetime22.3または同様の形式と情報を使用してください。

于 2009-09-25T10:40:51.727 に答える