日期SQL和C#中两个日期计算之间的日期差异产生不同的结果

我正在计算两个日期的日差.在C#中diffdays = (EndDate-StartDate).Days因此,考虑到Enddate为2015年6月26日并且在2015年6月10日开始时,diffdays值为15,如调试时的Autos部分所示.在SQL服务器中我正在做的事情SELECT D...

我正在计算两个日期的日差.
在C#中

diffdays = (EndDate-StartDate).Days

因此,考虑到Enddate为2015年6月26日并且在2015年6月10日开始时,diffdays值为15,如调试时的Autos部分所示.

在SQL服务器中我正在做的事情

SELECT DATEDIFF(day, StartDate, EndDate )

其中EndDate是2015年6月26日,startdate是2015年6月10日,结果为16.

我需要这两天的差异是一样的.我做错了什么?

解决方法:

TimeSpan.Days属性仅返回整天,丢弃任何小数部分.根据您的两个DateTime的时间部分,您可以期待您所看到的行为.

尝试使用Date属性将时间部分取出等式(并有效地将两次设置为午夜):

diffdays = (EndDate.Date - StartDate.Date).Days

或者,您可以对TotalDays属性进行舍入(包括天数的小数部分):

diffdays = Math.Ceiling((EndDate - StartDate).TotalDays);

本文标题为:日期SQL和C#中两个日期计算之间的日期差异产生不同的结果

基础教程推荐