Миллисекунды от DateTime в SQL Server и C # не совпадают - PullRequest
0 голосов
/ 01 апреля 2019

Я получаю даты из базы данных в SQL Server.
Когда я получаю DateTime из БД и сравниваю миллисекунды в C # и SQL Server.
Я вижу, что они не одинаковы.

Почему это?

1 Ответ

4 голосов
/ 01 апреля 2019

Тип данных SQL Server datetime не является точным на уровне миллисекунд.
Официальная документация предоставляет список свойств типа данных времени данных. В этом списке вы найдете следующую строку:

Accuracy Rounded to increments of .000, .003, or .007 seconds

На этой же странице вы также найдете следующую цитату:

Примечание
Используйте типы данных time , date , datetime2 и datetimeoffset для новой работы. Эти типы соответствуют стандарту SQL. Они более портативны. время , datetime2 и datetimeoffset обеспечивают большую точность секунд. datetimeoffset обеспечивает поддержку часовых поясов для глобально развернутых приложений.

Если вы работаете с DateTime2 вместо DateTime, вы получите точность в 100 наносекунд, помимо прочих преимуществ.
Фактически, за исключением случаев, когда вам необходимо поддерживать обратную совместимость, вы вообще не должны работать с DateTime, только с более новыми типами данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...