- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
考虑以下程序:
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();
这将有以下输出:
dateTime.TimeOfDay = 10:21:54.4647370
sqlDateTime.TimeOfDay = 10:21:54.4630000
令我感到奇怪的是 .464737 被四舍五入为 .463。这不应该四舍五入到 .464 吗?
我假设我没有在 .NET 代码中发现错误,所以问题是:
为什么它四舍五入到它所做的?以及如何获得客户端舍入来执行 SqlServer 将要执行的操作?
作为旁注,我将这个日期时间保存到 SQL Server 数据库(在 DateTime 列中)并再次将其取出,结果显示为 10:21:54.4670000。所以我真的很困惑。 (我认为 SqlDateTime 会与 SQL Server 将要执行的操作相匹配。)
注意:因为我使用的是 OData,所以我不能在 SQL Server 中使用 DateTime2。
最佳答案
SQL Server DATETIME
的精度为 3.33 毫秒 - 因此,您无法获得所有可能的值,.464
很可能就是这样一个值。
在 SQL Server 2008 上,您可以使用 DATETIME2
或 TIME(x)
数据类型,它们的精度可达 100ns - 对于“常规”使用来说应该足够了
关于c# - SqlDateTime 如何降低精度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7824766/
我在 SQL Server Management Studio 中使用了 SQL 语句,我在其中输入了以下日期时间 {ts '9999-12-31 23:59:59'} 的无限有效性,但是当我尝试通过
考虑以下程序: DateTime dateTime = new DateTime(634546165144647370); SqlDateTime sqlDateTime = new SqlDateT
我使用存储过程来获取分页列表,这是我的方法: using(SqlConnection conn = new SqlConnection(_connectionString)) { using(S
我刚刚发现我的 SqlDateTime.MinValue 在不同的机器上是不同的。 有时是 = DateTime(1953, 1, 1, 0, 0, 0); 但在其他机器上它是 = DateTime(
table = {{ID1, SQLDateTime[{1978, 1, 10, 0, 0, 0.`}]}, {ID2, SQLDateTime[{1999, 1, 10, 0, 0, 0.`}]},
我正在映射一个非常简单的 Users 表,并且我有一个名为“LastLoginDate”的列,它在 sql server 中定义为可为空。 我的映射看起来像这样: public Users {
我似乎无法将 sqldatatime.minvalue 转换为 datetime 对象。 我试过: Datetime dt = Convert.ToDateTime(SqlDateTime.MinVa
我想知道,为什么 SqlDateTime.MinValue 与 DateTime.MinValue 不一样? 最佳答案 我认为 SQL 和 .NET 的 Date 数据类型之间的差异源于 SQL Se
我需要用 SqlDateTime.Parse(val) 其中 val 是一个字符串,例如“23.3.1992 00:00:00 ”。 字符串为欧洲格式,即日在月之前。但是 Parse 需要“美国”格式
我在数据库中使用 NHibernate 持久化我的对象 App 对象定义了一个属性: public virtual DateTime ReleaseDate { get; set; } 在映射类中:
我有一个从源(DataRow 或 SqlDataReader)获取日期属性的方法: protected SqlDateTime GetSqlDateTimePropertyValue(string p
到处找都试过了,还是不行。 目前的方法是 DateTime dt = (DateTime)sqlparam.Value;。我可以想象在不同的配置、不同的 SQL 区域设置、不同的 PC 区域设置等
我不想验证 txtBirthDate,所以我想在数据库中传递 DateTime.MinValue。 我的代码: if (txtBirthDate.Text == string.Empty)
在将 .NET DateTime(默认情况下(DateTime))转换为 SqlDateTime 时,我应该始终检查 .NET 日期是否在 SqlDateTime.MinValue 和 SqlDate
当我将 DateTime 变量与 SqlDateTime.MinValue 进行比较时: if (StartDate > SqlDateTime.MinValue) { // some code
System.DateTime可以采用比 SQL Server 的 DateTime 更广泛的值。因此有类 System.Data.SqlTypes.SqlDateTime模仿后者。 因此,我希望 E
我正在开发一个以 NHibernate 作为后端的 ASP.NET MVC 项目,但在将一些日期写回到我的 SQL Server 数据库表中时遇到一些问题。 这些日期字段不可为空,因此此处有关如何设置
我正在用 c#.net 编写一个与 sql DB 一起工作的应用程序。我有 5 个字段 - 日期时间。当我处于 Debug模式时,我看到 DateTime 字段是正确的,但是当我运行应用程序时,我得到
以下代码使用比较 运算符可以正常编译。 If(dateTimeVariable > SqlDateTime.MinValue) //compiles Ok. dateTimeVariable is o
我正在尝试将日期从 C# 保存到 SQL Server。首先要向用户显示日期格式为 dd/MM/yyyy。然后在 Winforms 屏幕上选择日期后。我想将它保存到数据库中。如果我删除代码中的 dat
我是一名优秀的程序员,十分优秀!