SAS信息日期时间毫秒

时间:2009-09-24 12:00:25

标签: datetime sas informat

SAS可以存储和使用包含小于1/10秒的分数的日期时间吗?

例如:

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

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:2)

datetime变量是一个数值变量,就像任何其他数字变量一样。我们只知道它的值是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.
*/

答案 2 :(得分:1)

正如Rog指出的那样,您可以读取和存储日期时间,精度高于.1秒。

只需使用datetime22.3或类似的格式和信息,而不是datetime22。