У меня возникла проблема, связанная с преобразованием datetime из XML (ISO8601: yyyy-mm-ddThh: mi: ss.mmm) в дату и время SQL Server 2005. Проблема в том, что преобразование миллисекунд неверно. Я проверил как неявное и явное преобразование с помощью преобразования (DateTime, MyDate, 126) из NVARCHAR, а результат тот же:Неправильные миллисекунды при преобразовании из XML в SQL Server datetime
Original Result
2009-10-29T15:43:12.990 2009-10-29 15:43:12.990
2009-10-29T15:43:12.991 2009-10-29 15:43:12.990
2009-10-29T15:43:12.992 2009-10-29 15:43:12.993
2009-10-29T15:43:12.993 2009-10-29 15:43:12.993
2009-10-29T15:43:12.994 2009-10-29 15:43:12.993
2009-10-29T15:43:12.995 2009-10-29 15:43:12.997
2009-10-29T15:43:12.996 2009-10-29 15:43:12.997
2009-10-29T15:43:12.997 2009-10-29 15:43:12.997
2009-10-29T15:43:12.998 2009-10-29 15:43:12.997
2009-10-29T15:43:12.999 2009-10-29 15:43:13.000
Моя неэкстенсивная тестирование показывает, что последняя цифра либо 0, 3 или 7. Является ли это простой проблемой округления? Вариация Millisecond важна, и потеря/выигрыш один или два не является вариантом.
Какое решение тогда? –
Я бы сказал, не используйте Datatyp DateTime SQL Server. Вместо этого сохраните значение в VARCHAR. –
Спасибо, это было поучительно, хотя и несколько удручающе. – chriscena