c# - Sql Server 中的 DateTime 插入更改值

标签 c# sql-server datetime

当我插入这些值时

09/30/2013 05:04:56.599 
09/30/2013 05:04:56.599
09/30/2013 05:04:56.599
09/30/2013 05:04:57.082

在SqlServer数据库中,毫秒值的变化很奇怪

2013-09-30 05:04:56.600 
2013-09-30 05:04:56.600 
2013-09-30 05:04:56.600 
2013-09-30 05:04:57.083

怎么了?

编辑: 相关代码:

        com = new SqlCommand();
        com.Connection = con;
        com.CommandText = @"INSERT INTO [AuthSourceTimings]
                                   ([FileName]
                                   ,[JobID]
                                   ,[JobCreationTime]
                                   ,[JobSendTime]
                                   ,[JobAckTime]
                                   ,[JobDoneTime])
                             VALUES
                                   (@FileName
                                   ,@JobID
                                   ,@JobCreationTime
                                   ,@JobSendTime
                                   ,@JobAckTime
                                   ,@JobDoneTime)
                            ";

        com.Parameters.AddWithValue("@FileName", fileName);
        com.Parameters.AddWithValue("@JobID", t.JobID);

        com.Parameters.AddWithValue("@JobCreationTime", t.JobCreationTime == DateTime.MinValue ? (object)DBNull.Value : (object)t.JobCreationTime);
        com.Parameters.AddWithValue("@JobSendTime", t.JobSendTime == DateTime.MinValue ? (object)DBNull.Value : (object)t.JobSendTime);
        com.Parameters.AddWithValue("@JobAckTime", t.JobAcknowledgementTime == DateTime.MinValue ? (object)DBNull.Value : (object)t.JobAcknowledgementTime);
        com.Parameters.AddWithValue("@JobDoneTime", t.JobCompletionTime == DateTime.MinValue ? (object)DBNull.Value : (object)t.JobCompletionTime);

        com.ExecuteNonQuery();

最佳答案

毫秒在日期时间格式中仅以大约 1/300 秒的精度存储,因此这就是不准确性的来源。

您可以查看此答案:Why is SQL Server losing a millisecond?

要获得更高的精度(100 纳秒),您可以使用 SQL Server 2008 中引入的 DATETIME2。您可以在此处获取更多信息:

关于c# - Sql Server 中的 DateTime 插入更改值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19115324/

相关文章:

c# - 如何在 .NET winforms 中公开 ListView?

c# - C# 程序中 SQL Server 的 OleDB 连接字符串

c# - UrlHelper 类在 Asp.net mvc 中抛出空异常

javascript - 在javascript中获取日期和时间的最简单方法

c# - 对象的 MongoDB 关系

sql - 在 SQL 中将行转换为 XML 节点

sql-server - 从 DGV 添加列到 SQL Server 的问题

sql-server - 多表复杂实体的乐观并发

python - 计算日期和时间戳列之间的时间差(以分钟为单位)

mysql - 无法在 .net core 3.1 中从 MySQL 中构建 “datetime” 类型的列