Как обработать несоответствие в точности между .NET CLR DateTime и datetime в SQL Server (и SQL CE) - PullRequest
2 голосов
/ 10 февраля 2011

В .NET тип данных DateTime имеет точность до 100 нс. В SQL Server и SQL CE тип datetime не такой точный.

У меня есть тонны кода, который использует DateTime.Now или DateTime.UtcNow. Значения, возвращаемые этими вызовами, затем сохраняются в базе данных. В зависимости от значения, когда я извлекаю эти данные из базы данных, они не будут соответствовать введенному значению. В результате модульные тесты не срабатывают, а бизнес-логика, основанная на сравнении, терпит неудачу

Это должно быть очень распространенной проблемой. Должен ли я идти везде в моем коде, где я вижу DateTime.UtcNow или DateTime.Now и округлять его? Если я сделаю это, мне также придется запретить все будущие ссылки на DateTime.Now и DateTime.UtcNow. Есть ли способ легко предотвратить это?

Существуют ли другие стандартные подходы?

Спасибо

...