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

标签 c# sql-server database

我正在计算两个日期的日差。 在 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/

相关文章:

c# - 在 C# 中如何旋转图片框及其图像?

c# - 不同类型的不一致溢出检查行为

c# - 如何获取图像属性?

C#、LINQ、SQL : Compound columns

sql - SUM 字段不求和

具有数组参数和任意元素类型的 C# FieldInfo.SetValue

sql - 特定列区分大小写

sql-server - 我可以使用 SSMS 创建到 Databricks 的链接服务器连接吗?

mysql - SQL 查询没有正确执行 DESC

MYSQL 如何从另一个表自动更新?