Once I got the recipe, making a transform from a SAS date value was easy. A SAS datetime value is: The number of seconds since 12:00 midnight on January 1, 1960. This value has to be mapped to a .NET DateTime value. This value is the number of ticks since 12:00 midnight, January 1, 0001 A.D. (C.E.) in the Gregorian Calendar. A tick is 100 nanoseconds. Here is the transform function written in C#: private DateTime SASBaseDate = new DateTime(1960, 01, 01);
private const long TicksInASecond = 10000000;
private DateTime ToDate(object sasTics) {
if (sasTics == null || sasTics is DBNull)
return DateTime.MinValue;
var lTicks = Convert.ToInt64(sasTics);
return new DateTime(SASBaseDate.Ticks + (lTicks * TicksInASecond));
}
... View more