我正在计算两个日期的日差。 在 C# 中
diffdays = (EndDate-StartDate).Days
因此,考虑到结束日期为 6/26/2015 和开始日期为 6/10/2015,diffdays 值为 15,如调试时“自动”部分所示。
在 SQL Server 中我正在做的是
SELECT DATEDIFF(day, StartDate, EndDate )
其中结束日期为 6/26/2015,开始日期为 6/10/2015,结果为 16。
我需要这两天的差异相同。我做错了什么?
最佳答案
TimeSpan.Days
属性只返回整天,舍弃任何小数部分。根据您的两个 DateTime
的时间部分,您可能会看到您所看到的行为。
尝试使用 Date
属性(并有效地将两个时间设置为午夜)从等式中取出时间部分:
diffdays = (EndDate.Date - StartDate.Date).Days
或者,您可以将 TotalDays
属性(包括天数的小数部分)四舍五入:
diffdays = Math.Ceiling((EndDate - StartDate).TotalDays);
关于c# - SQL 和 C# 中两个日期计算之间的日期差异产生不同的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31072434/