Consider the following program:
DateTime dateTime = new DateTime(634546165144647370); SqlDateTime sqlDateTime = new SqlDateTime(dateTime); Console.WriteLine
SQL Server DATETIME has an accuracy of 3.33ms - therefore, you cannot get all possible values, and there's a good chance .464 was just such a value.
DATETIME
.464
On SQL Server 2008, you could use DATETIME2 or TIME(x) datatypes which have an accuracy to 100ns - that should be plenty enough for "regular" use
DATETIME2
TIME(x)