Кажется, я получаю разные результаты при использовании функциональности TimeSpan в C # против TSQL DateDiff.Кажется, что DateDiff дает количество дней между двумя датами независимо от отметки времени, тогда как в C # он принимает во внимание отметку времени.Таким образом, если первая отметка времени находится в 10:00, а вторая отметка - в 9:00 следующего дня, временной интервал равен 0 дням, а DateDiff вернет 1.
declare @d1 datetime
declare @d2 datetime
set @d1 = '2/9/2011 10:00'
set @d2 = '2/10/2011 09:00'
select datediff(day, @d1, @d2)
-- prints 1
Используя C # DateTime и DateTime span.
// will return 1 with same dates
private static int DateDiff(DateTime from, DateTime to)
{
return (new DateTime(from.Year, from.Month, from.Day)
- new DateTime(to.Year, to.Month, to.Day)).Days;
}
Вопрос в том, есть ли лучший способ сделать это?