Разница дней между c # и SQL Server - PullRequest
0 голосов
/ 24 мая 2019

У меня есть следующий код в c #:

var days = (result.PasswordExpDate.Value - DateTime.UtcNow).Days;

result.PasswordExpDate имеет значение от 25.05.2009 16:49:37
DateTime.UtcNow имеет значение 5 /24/2019 16:54:05

Показывает дни, чтобы быть значением 0

В SQL Server у меня есть следующее, и это показывает значение 1 для Daysdiff

DATEDIFF(day, GetUtcDate(), PasswordExpDate) AS Daysdiff

Интересно, почему разница

1 Ответ

4 голосов
/ 24 мая 2019

Поскольку DATEDIFF считает пересеченные «границы» (Midnights for day), а TimeSpan.Days подсчитывает количество 24-часовых периодов, полностью содержащихся в TimeSpan. Это все в документах:

Эта функция возвращает количество (как целочисленное значение со знаком) указанные границы части даты пересекаются между указанной начальной датой и конец.

DATEDIFF

Свойство Days представляет целые дни, тогда как TotalDays свойство представляет целые и дробные дни.

TimeSpan.Days

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