SQL Server przechowuje czas tylko do około 1/300 sekundy. Te zawsze przypadają na 0, 3 i 7 milisekund. Np. odliczając od 0 w najmniejszym przyroście:
00:00:00.000
00:000:00.003
00:000:00.007
00:00:00.010
00:00:00.013
...
Jeśli potrzebujesz tej milisekundowej dokładności, nie ma przyjemnego sposobu na obejście tego. Najlepsze opcje, jakie widziałem, to przechowywanie wartości w niestandardowych polach liczbowych i odbudowywanie jej za każdym razem, gdy pobierasz wartość, lub przechowywanie jej jako ciągu o znanym formacie. Następnie możesz (opcjonalnie) przechowywać „przybliżoną” datę w natywnym typie daty ze względu na szybkość, ale wprowadza to złożoność koncepcyjną, która często nie jest pożądana.