Search code examples
datetimesasinformat

SAS informat datetime milliseconds


Can SAS store and use datetimes that contain fractions of less than 1/10th of a second?

eg:

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

Solution

  • A datetime variable is a numeric variable just like any other numeric variables. We just understand its value as the seconds since 01jan1960T00:00:00. Hope this helps.

    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.
    */