相关疑难解决方法(0)

SqlDateTime如何进行精度降低

考虑以下程序:

DateTime dateTime = new DateTime(634546165144647370);
SqlDateTime sqlDateTime = new SqlDateTime(dateTime);

Console.WriteLine("dateTime.TimeOfDay    = " + dateTime.TimeOfDay);
Console.WriteLine("sqlDateTime.TimeOfDay = " + sqlDateTime.Value.TimeOfDay);
Console.ReadLine();
Run Code Online (Sandbox Code Playgroud)

这将有以下输出:

dateTime.TimeOfDay    = 10:21:54.4647370  
sqlDateTime.TimeOfDay = 10:21:54.4630000
Run Code Online (Sandbox Code Playgroud)

对我来说奇怪的是.464737被舍入为.463.不应该四舍五入到.464吗?

我假设我没有在.NET代码中发现错误,所以问题是:

为什么它要做到这一点呢? 以及如何进行客户端舍入以完成SqlServer将要执行的操作?

作为旁注,我将这个日期时间保存到SQL Server数据库(在DateTime列中)并再次将其拉出来,结果为10:21:54.4670000.所以我真的很困惑.(我认为SqlDateTime会与SQL Server要做的事情相匹配.)

注意:因为我使用的是OData,所以我无法在SQL Server中使用DateTime2.

c# sqldatetime

5
推荐指数
2
解决办法
1125
查看次数

标签 统计

c# ×1

sqldatetime ×1