相关疑难解决方法(0)

Round .NET DateTime毫秒,因此它可以适合SQL Server毫秒

我想将datetime值转换为我将从SQL Server 2008获得的值.

SQL Server将毫秒截断为3位数,因此我已经截断了毫秒数.但问题是,正如您在此处看到的:从XML转换为SQL Server datetime时,毫秒错误.SQL Server也存在精度问题.

c# sql-server datetime sql-server-2008

15
推荐指数
4
解决办法
9251
查看次数

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# ×2

datetime ×1

sql-server ×1

sql-server-2008 ×1

sqldatetime ×1