SQL Server ne stocke le temps qu'à environ 1/300e de seconde. Celles-ci tombent toujours sur les 0, 3 et 7 millisecondes. Par exemple. en comptant à partir de 0 dans le plus petit incrément :
00:00:00.000
00:00:00.003
00:00:00.007
00:00:00.010
00:00:00.013
Si vous avez besoin de cette précision à la milliseconde, il n'y a pas de solution agréable. Les meilleures options que j'ai vues consistent à stocker la valeur dans des champs numériques personnalisés et à la reconstruire chaque fois que vous récupérez la valeur, ou à la stocker sous forme de chaîne d'un format connu. Vous pouvez ensuite (éventuellement) stocker une date "approximative" dans le type de date natif pour des raisons de rapidité, mais cela introduit une complexité conceptuelle qui n'est souvent pas souhaitée.